<?xml version="1.0"?>
<doc>
    <assembly>
        <name>Phone.Storage</name>
    </assembly>
    <members>
        <member name="T:Phone.Storage.Serializer.SByteSerializer">
            <summary>
            Provides the serialization logic associated with <see cref="T:System.SByte"/> instances.
            </summary>
        </member>
        <member name="T:Phone.Storage.Serializer.AbstractMonoTypeSerializer">
            <summary>
            Base class for the simpliest serializers - those that are associated to a specific type.
            </summary>
        </member>
        <member name="T:Phone.Storage.Serializer.AbstractSerializer">
            <summary>
            Base class for the serializers - provides the parameter checks for all methods.
            </summary>
        </member>
        <member name="T:Phone.Storage.ISerializer">
            <summary>
            Defines the concept of serializer used to read/write data on a binary stream.
            </summary>
        </member>
        <member name="M:Phone.Storage.ISerializer.CanSerialize(System.Type)">
            <summary>
            Checks if the serializer is associated to a specific type.
            </summary>
            <param name="type">The checked type.</param>
            <returns>
            <c>true</c> if the serializer can work with instances of <paramref name="type"/>;
            <c>false</c> otherwise.
            </returns>
            <exception cref="T:System.ArgumentNullException">
            The <paramref name="type"/> parameter is <c>null</c>.
            </exception>
        </member>
        <member name="M:Phone.Storage.ISerializer.CanWorkInPlace(System.Type)">
            <summary>
            Checks whether the <see cref="M:Phone.Storage.ISerializer.Deserialize(System.IO.BinaryReader,System.Type,System.Object)"/>
            method is implemented by this serializer.
            </summary>
            <param name="type">The checked type.</param>
            <returns>
            <c>true</c> if the serializer can work with initialized instances of
            <paramref name="type"/>; <c>false</c> otherwise.
            </returns>
            <remarks>
            This method should not return <c>true</c> when <see cref="M:Phone.Storage.ISerializer.CanSerialize(System.Type)"/>
            returns <c>false</c>
            </remarks>
            <exception cref="T:System.ArgumentNullException">
            The <paramref name="type"/> parameter is <c>null</c>.
            </exception>
        </member>
        <member name="M:Phone.Storage.ISerializer.Serialize(System.IO.BinaryWriter,System.Type,System.Object)">
            <summary>
            Serializes a specified object as a binary stream.
            </summary>
            <param name="writer">
            The writer associated with the target stream.
            </param>
            <param name="type">
            The reference type for the serialization.
            </param>
            <param name="value">
            The serialized value - should be an instance of <paramref name="type"/>.
            </param>
            <exception cref="T:System.ArgumentNullException">
            One of the <paramref name="writer"/> or <paramref name="type"/> parameters
            is <c>null</c>.
            </exception>
            <exception cref="T:System.ArgumentException">
            The <paramref name="value"/> is not an instance of <paramref name="type"/>.
            </exception>
            <exception cref="T:System.Runtime.Serialization.SerializationException">
            The <paramref name="value"/> can't be serialized.
            </exception>
        </member>
        <member name="M:Phone.Storage.ISerializer.Deserialize(System.IO.BinaryReader,System.Type)">
            <summary>
            Deserializes an object from a binary stream.
            </summary>
            <param name="reader">
            The reader associated with the source stream.
            </param>
            <param name="type">
            The reference type for the serialization.
            </param>
            <returns>
            The deserialized object.
            </returns>
            <exception cref="T:System.ArgumentNullException">
            The <paramref name="reader"/> parameter is <c>null</c>.
            </exception>
            <exception cref="T:System.Runtime.Serialization.SerializationException">
            The value can't be deserialized.
            </exception>
        </member>
        <member name="M:Phone.Storage.ISerializer.Deserialize(System.IO.BinaryReader,System.Type,System.Object)">
            <summary>
            Deserializes an object from a binary stream into an existing object.
            </summary>
            <param name="reader">
            The reader associated with the source stream.
            </param>
            <param name="type">
            The reference type for the serialization.
            </param>
            <param name="value">
            The container for the deserialized object.
            </param>
            <exception cref="T:System.ArgumentNullException">
            One of the parameters is <c>null</c>.
            </exception>
            <exception cref="T:System.ArgumentException">
            The <paramref name="value"/> is not an instance of <paramref name="type"/>.
            </exception>
            <exception cref="T:System.NotSupportedException">
            This deserialization mode is not supported by the current implementation.
            </exception>
            <exception cref="T:System.Runtime.Serialization.SerializationException">
            The value can't be deserialized.
            </exception>
            <seealso cref="M:Phone.Storage.ISerializer.CanWorkInPlace(System.Type)"/>
        </member>
        <member name="M:Phone.Storage.Serializer.AbstractSerializer.CanSerialize(System.Type)">
            <summary>
            Checks if the serializer is associated to a specific type.
            </summary>
            <param name="type">The checked type.</param>
            <returns>
            <c>true</c> if the serializer can work with instances of <paramref name="type"/>;
            <c>false</c> otherwise.
            </returns>
            <exception cref="T:System.ArgumentNullException">
            The <paramref name="type"/> parameter is <c>null</c>.
            </exception>
        </member>
        <member name="M:Phone.Storage.Serializer.AbstractSerializer.CanWorkInPlace(System.Type)">
            <summary>
            Checks whether the <see cref="M:Phone.Storage.ISerializer.Deserialize(System.IO.BinaryReader,System.Type,System.Object)"/>
            method is implemented by this serializer.
            </summary>
            <param name="type">The checked type.</param>
            <returns>
            <c>true</c> if the serializer can work with initialized instances of
            <paramref name="type"/>; <c>false</c> otherwise.
            </returns>
            <remarks>
            This method should not return <c>true</c> when <see cref="M:Phone.Storage.ISerializer.CanSerialize(System.Type)"/>
            returns <c>false</c>
            </remarks>
            <exception cref="T:System.ArgumentNullException">
            The <paramref name="type"/> parameter is <c>null</c>.
            </exception>
        </member>
        <member name="M:Phone.Storage.Serializer.AbstractSerializer.Serialize(System.IO.BinaryWriter,System.Type,System.Object)">
            <summary>
            Serializes a specified object as a binary stream.
            </summary>
            <param name="writer">
            The writer associated with the target stream.
            </param>
            <param name="type">
            The reference type for the serialization.
            </param>
            <param name="value">
            The serialized value - should be an instance of <paramref name="type"/>.
            </param>
            <exception cref="T:System.ArgumentNullException">
            One of the <paramref name="writer"/> or <paramref name="type"/> parameters
            is <c>null</c>.
            </exception>
            <exception cref="T:System.ArgumentException">
            The <paramref name="value"/> is not an instance of <paramref name="type"/>.
            </exception>
            <exception cref="T:System.Runtime.Serialization.SerializationException">
            The <paramref name="value"/> can't be serialized.
            </exception>
        </member>
        <member name="M:Phone.Storage.Serializer.AbstractSerializer.Deserialize(System.IO.BinaryReader,System.Type)">
            <summary>
            Deserializes an object from a binary stream.
            </summary>
            <param name="reader">
            The reader associated with the source stream.
            </param>
            <param name="type">
            The reference type for the serialization.
            </param>
            <returns>
            The deserialized object.
            </returns>
            <exception cref="T:System.ArgumentNullException">
            The <paramref name="reader"/> parameter is <c>null</c>.
            </exception>
            <exception cref="T:System.Runtime.Serialization.SerializationException">
            The value can't be deserialized.
            </exception>
        </member>
        <member name="M:Phone.Storage.Serializer.AbstractSerializer.Deserialize(System.IO.BinaryReader,System.Type,System.Object)">
            <summary>
            Deserializes an object from a binary stream into an existing object.
            </summary>
            <param name="reader">
            The reader associated with the source stream.
            </param>
            <param name="type">
            The reference type for the serialization.
            </param>
            <param name="value">
            The contener for the deserialized object.
            </param>
            <exception cref="T:System.ArgumentNullException">
            One of the parameters is <c>null</c>.
            </exception>
            <exception cref="T:System.ArgumentException">
            The <paramref name="value"/> is not an instance of <paramref name="type"/>.
            </exception>
            <exception cref="T:System.NotSupportedException">
            This deserialization mode is not supported by the current implementation.
            </exception>
            <exception cref="T:System.Runtime.Serialization.SerializationException">
            The value can't be deserialized.
            </exception>
            <seealso cref="M:Phone.Storage.ISerializer.CanWorkInPlace(System.Type)"/>
        </member>
        <member name="M:Phone.Storage.Serializer.AbstractSerializer.InternalCanSerialize(System.Type)">
            <summary>
            Implements the <see cref="M:Phone.Storage.ISerializer.CanSerialize(System.Type)"/> logic.
            </summary>
            <param name="type">
            The reference type - guaranty to be not <c>null</c>.
            </param>
            <returns>
            <c>true</c> if the serializer can work with instances of <paramref name="type"/>;
            <c>false</c> otherwise.
            </returns>
        </member>
        <member name="M:Phone.Storage.Serializer.AbstractSerializer.InternalCanWorkInPlace(System.Type)">
            <summary>
            Implements the <see cref="M:Phone.Storage.ISerializer.CanWorkInPlace(System.Type)"/> logic.
            </summary>
            <param name="type">
            The reference type - guaranty to be not <c>null</c>.
            </param>
            <returns>
            <c>true</c> if the serializer can work with initialized instances of
            <paramref name="type"/>; <c>false</c> otherwise.
            </returns>
        </member>
        <member name="M:Phone.Storage.Serializer.AbstractSerializer.InternalSerialize(System.IO.BinaryWriter,System.Type,System.Object)">
            <summary>
            Implements the serialization logic.
            </summary>
            <param name="writer">
            The writer - guaranty to be not <c>null</c>.
            </param>
            <param name="type">
            The reference type - guaranty to be not <c>null</c>.
            </param>
            <param name="value">
            The value to serialize - guaranty to be not <c>null</c> and associated with
            the current serializer.
            </param>
        </member>
        <member name="M:Phone.Storage.Serializer.AbstractSerializer.InternalDeserialize(System.IO.BinaryReader,System.Type)">
            <summary>
            Implements the deserialization logic.
            </summary>
            <param name="reader">
            The reader - guaranty to be not <c>null</c>.
            </param>
            <param name="type">
            The reference type - guaranty to be not <c>null</c>.
            </param>
            <returns>The deserialized value.</returns>
        </member>
        <member name="M:Phone.Storage.Serializer.AbstractSerializer.InternalDeserialize(System.IO.BinaryReader,System.Type,System.Object)">
            <summary>
            Implements the in-place deserialization logic.
            </summary>
            <param name="reader">
            The reader - guaranty to be not <c>null</c>.
            </param>
            <param name="type">
            The reference type - guaranty to be not <c>null</c>.
            </param>
            <param name="value">
            The container for the deserialized object - guaranty to be not <c>null</c>.
            </param>
        </member>
        <member name="M:Phone.Storage.Serializer.AbstractMonoTypeSerializer.InternalCanSerialize(System.Type)">
            <summary>
            Checks if the serializer is associated to a specific type.
            </summary>
            <param name="type">The checked type.</param>
            <returns>
            <c>true</c> if the serializer can work with instances of <paramref name="type"/>;
            <c>false</c> otherwise.
            </returns>
            <seealso cref="P:Phone.Storage.Serializer.AbstractMonoTypeSerializer.AssociatedType"/>
        </member>
        <member name="M:Phone.Storage.Serializer.AbstractMonoTypeSerializer.InternalCanWorkInPlace(System.Type)">
            <summary>
            Checks whether the <see cref="M:Phone.Storage.ISerializer.Deserialize(System.IO.BinaryReader,System.Type,System.Object)"/>*
            method is implemented by this serializer.
            </summary>
            <param name="type">The checked type.</param>
            <returns>
            Always <c>false</c>.
            </returns>
        </member>
        <member name="M:Phone.Storage.Serializer.AbstractMonoTypeSerializer.InternalSerialize(System.IO.BinaryWriter,System.Type,System.Object)">
            <summary>
            Implements the serialization logic.
            </summary>
            <param name="writer">
            The writer - guaranty to be not <c>null</c>.
            </param>
            <param name="type">
            The reference type - guaranty to be not <c>null</c>.
            </param>
            <param name="value">
            The value to serialize - guaranty to be not <c>null</c> and associated with
            the current serializer.
            </param>
        </member>
        <member name="M:Phone.Storage.Serializer.AbstractMonoTypeSerializer.InternalDeserialize(System.IO.BinaryReader,System.Type)">
            <summary>
            Implements the deserialization logic.
            </summary>
            <param name="reader">
            The reader - guaranty to be not <c>null</c>.
            </param>
            <param name="type">
            The reference type - guaranty to be not <c>null</c>.
            </param>
            <returns>The deserialized value.</returns>
        </member>
        <member name="M:Phone.Storage.Serializer.AbstractMonoTypeSerializer.InternalDeserialize(System.IO.BinaryReader,System.Type,System.Object)">
            <summary>
            Implements the in-place deserialization logic.
            </summary>
            <param name="reader">
            The reader - guaranty to be not <c>null</c>.
            </param>
            <param name="type">
            The reference type - guaranty to be not <c>null</c>.
            </param>
            <param name="value">
            The contener for the deserialized object - guaranty to be not <c>null</c>.
            </param>
        </member>
        <member name="M:Phone.Storage.Serializer.AbstractMonoTypeSerializer.InternalSerialize(System.IO.BinaryWriter,System.Object)">
            <summary>
            Implements the serialization logic for the type associated with this serializer.
            </summary>
            <param name="writer">
            The writer - guaranty to be not <c>null</c>.
            </param>
            <param name="value">
            The value to serialize - guaranty to be not <c>null</c> and associated with
            the current serializer.
            </param>
        </member>
        <member name="M:Phone.Storage.Serializer.AbstractMonoTypeSerializer.InternalDeserialize(System.IO.BinaryReader)">
            <summary>
            Implements the deserialization logic for the type associated with this serializer.
            </summary>
            <param name="reader">
            The reader - guaranty to be not <c>null</c>.
            </param>
            <returns>The deserialized value.</returns>
        </member>
        <member name="P:Phone.Storage.Serializer.AbstractMonoTypeSerializer.AssociatedType">
            <summary>
            Gets the type of elements managed by the serializer.
            </summary>
        </member>
        <member name="M:Phone.Storage.Serializer.SByteSerializer.InternalSerialize(System.IO.BinaryWriter,System.Object)">
            <summary>
            Serializes a <see cref="T:System.SByte"/> value.
            </summary>
            <param name="writer">The target writer.</param>
            <param name="value">The serialized value.</param>
        </member>
        <member name="M:Phone.Storage.Serializer.SByteSerializer.InternalDeserialize(System.IO.BinaryReader)">
            <summary>
            Reads a <see cref="T:System.SByte"/> value.
            </summary>
            <param name="reader">The source reader.</param>
            <returns>The deserialized value.</returns>
        </member>
        <member name="P:Phone.Storage.Serializer.SByteSerializer.AssociatedType">
            <summary>
            Gets the <see cref="T:System.SByte"/> type.
            </summary>
        </member>
        <member name="T:Phone.Storage.Serializer.DecimalSerializer">
            <summary>
            Provides the serialization logic associated with <see cref="T:System.Decimal"/> instances.
            </summary>
        </member>
        <member name="M:Phone.Storage.Serializer.DecimalSerializer.InternalSerialize(System.IO.BinaryWriter,System.Object)">
            <summary>
            Serializes a <see cref="T:System.Decimal"/> value.
            </summary>
            <param name="writer">The target writer.</param>
            <param name="value">The serialized value.</param>
        </member>
        <member name="M:Phone.Storage.Serializer.DecimalSerializer.InternalDeserialize(System.IO.BinaryReader)">
            <summary>
            Reads a <see cref="T:System.Decimal"/> value.
            </summary>
            <param name="reader">The source reader.</param>
            <returns>The deserialized value.</returns>
        </member>
        <member name="P:Phone.Storage.Serializer.DecimalSerializer.AssociatedType">
            <summary>
            Gets the <see cref="T:System.Decimal"/> type.
            </summary>
        </member>
        <member name="T:Phone.Storage.Serializer.BoolSerializer">
            <summary>
            Provides the serialization logic associated with <see cref="T:System.Boolean"/> instances.
            </summary>
        </member>
        <member name="M:Phone.Storage.Serializer.BoolSerializer.InternalSerialize(System.IO.BinaryWriter,System.Object)">
            <summary>
            Serializes a <see cref="T:System.Boolean"/> value.
            </summary>
            <param name="writer">The target writer.</param>
            <param name="value">The serialized value.</param>
        </member>
        <member name="M:Phone.Storage.Serializer.BoolSerializer.InternalDeserialize(System.IO.BinaryReader)">
            <summary>
            Reads a <see cref="T:System.Boolean"/> value.
            </summary>
            <param name="reader">The source reader.</param>
            <returns>The deserialized value.</returns>
        </member>
        <member name="P:Phone.Storage.Serializer.BoolSerializer.AssociatedType">
            <summary>
            Gets the <see cref="T:System.Boolean"/> type.
            </summary>
        </member>
        <member name="T:Phone.Storage.Api.LoadingCache">
            <summary>
            Implements a simple cache used when loading object to avoid cycle.
            </summary>
        </member>
        <member name="F:Phone.Storage.Api.LoadingCache.cache">
            <summary>
            The loaded data.
            </summary>
        </member>
        <member name="M:Phone.Storage.Api.LoadingCache.#ctor">
            <summary>
            Initializes a new instance of the LoadingCache class.
            </summary>
        </member>
        <member name="M:Phone.Storage.Api.LoadingCache.IsLoaded(System.Type,System.Object)">
            <summary>
            Checks if a specified data is already cached.
            </summary>
            <param name="type">The type of the object.</param>
            <param name="key">The key of the object.</param>
            <returns>
            <c>true</c> if an object of type <paramref name="type"/> with the specific <paramref name="key"/>
            is cached; <c>false</c> otherwise.
            </returns>
        </member>
        <member name="M:Phone.Storage.Api.LoadingCache.Retrieve(System.Type,System.Object)">
            <summary>
            Retrieves a specified data from the cache.
            </summary>
            <param name="type">The type of the object.</param>
            <param name="key">The key of the object.</param>
            <returns>
            The object of type <paramref name="type"/> associated with <paramref name="key"/>.
            </returns>
            <exception cref="T:System.NotSupportedException">
            The cache doesn't contain the specified <paramref name="key"/> for the specified <paramref name="type"/>.
            </exception>
        </member>
        <member name="M:Phone.Storage.Api.LoadingCache.Loaded(System.Type,System.Object,System.Object)">
            <summary>
            Registers an object into the cache.
            </summary>
            <param name="type">The type of the object.</param>
            <param name="key">The key of the object.</param>
            <param name="instance">The object.</param>
        </member>
        <member name="M:Phone.Storage.Api.LoadingCache.Clear">
            <summary>
            Clears the cache.
            </summary>
        </member>
        <member name="T:Phone.Storage.Serializer.Int16Serializer">
            <summary>
            Provides the serialization logic associated with <see cref="T:System.Int16"/> instances.
            </summary>
        </member>
        <member name="M:Phone.Storage.Serializer.Int16Serializer.InternalSerialize(System.IO.BinaryWriter,System.Object)">
            <summary>
            Serializes a <see cref="T:System.Int16"/> value.
            </summary>
            <param name="writer">The target writer.</param>
            <param name="value">The serialized value.</param>
        </member>
        <member name="M:Phone.Storage.Serializer.Int16Serializer.InternalDeserialize(System.IO.BinaryReader)">
            <summary>
            Reads a <see cref="T:System.Int16"/> value.
            </summary>
            <param name="reader">The source reader.</param>
            <returns>The deserialized value.</returns>
        </member>
        <member name="P:Phone.Storage.Serializer.Int16Serializer.AssociatedType">
            <summary>
            Gets the <see cref="T:System.Int16"/> type.
            </summary>
        </member>
        <member name="T:Phone.Storage.Serializer.SingleSerializer">
            <summary>
            Provides the serialization logic associated with <see cref="T:System.Single"/> instances.
            </summary>
        </member>
        <member name="M:Phone.Storage.Serializer.SingleSerializer.InternalSerialize(System.IO.BinaryWriter,System.Object)">
            <summary>
            Serializes a <see cref="T:System.Single"/> value.
            </summary>
            <param name="writer">The target writer.</param>
            <param name="value">The serialized value.</param>
        </member>
        <member name="M:Phone.Storage.Serializer.SingleSerializer.InternalDeserialize(System.IO.BinaryReader)">
            <summary>
            Reads a <see cref="T:System.Single"/> value.
            </summary>
            <param name="reader">The source reader.</param>
            <returns>The deserialized value.</returns>
        </member>
        <member name="P:Phone.Storage.Serializer.SingleSerializer.AssociatedType">
            <summary>
            Gets the <see cref="T:System.Single"/> type.
            </summary>
        </member>
        <member name="T:Phone.Storage.Serializer.TimeSpanSerializer">
            <summary>
            Provides the serialization logic associated with <see cref="T:System.TimeSpan"/> instances.
            </summary>
        </member>
        <member name="M:Phone.Storage.Serializer.TimeSpanSerializer.InternalSerialize(System.IO.BinaryWriter,System.Object)">
            <summary>
            Serializes a <see cref="T:System.TimeSpan"/> value.
            </summary>
            <param name="writer">The target writer.</param>
            <param name="value">The serialized value.</param>
        </member>
        <member name="M:Phone.Storage.Serializer.TimeSpanSerializer.InternalDeserialize(System.IO.BinaryReader)">
            <summary>
            Reads a <see cref="T:System.TimeSpan"/> value.
            </summary>
            <param name="reader">The source reader.</param>
            <returns>The deserialized value.</returns>
        </member>
        <member name="P:Phone.Storage.Serializer.TimeSpanSerializer.AssociatedType">
            <summary>
            Gets the <see cref="T:System.TimeSpan"/> type.
            </summary>
        </member>
        <member name="T:Phone.Storage.IPropertyDefinition">
            <summary>
            Provides details about how to manipulate a property.
            </summary>
            <remarks>
            The implementations of this interface should be immutable to avoid any side effect.
            </remarks>
        </member>
        <member name="M:Phone.Storage.IPropertyDefinition.GetValue(System.Object)">
            <summary>
            Extracts the value of the property from a specific object.
            </summary>
            <param name="instance">The instance of the parent object.</param>
            <returns>
            The value of the property in <paramref name="instance"/>.
            </returns>
            <exception cref="T:System.ArgumentNullException">
            The <paramref name="instance"/> parameter is <c>null</c>.
            </exception>
        </member>
        <member name="M:Phone.Storage.IPropertyDefinition.SetValue(System.Object,System.Object)">
            <summary>
            Defines the value of the property for a specific object.
            </summary>
            <param name="instance">The instance of the parent object.</param>
            <param name="value">The new value for the property.</param>
            <exception cref="T:System.ArgumentNullException">
            The <paramref name="instance"/> parameter is <c>null</c>.
            </exception>
        </member>
        <member name="P:Phone.Storage.IPropertyDefinition.Type">
            <summary>
            Gets the type of the property.
            </summary>
        </member>
        <member name="P:Phone.Storage.IPropertyDefinition.RequireInPlace">
            <summary>
            Gets a value indicating whether the a in-place serialization should
            be used for this property (no use of the <see cref="M:Phone.Storage.IPropertyDefinition.SetValue(System.Object,System.Object)"/>).
            </summary>
        </member>
        <member name="T:Phone.Storage.DefinitionException">
            <summary>
            Represents errors that occurs when a data source is initialized with
            a wrong definition.
            </summary>
        </member>
        <member name="M:Phone.Storage.DefinitionException.#ctor">
            <summary>
            Initializes a new instance of the DefinitionException class.
            </summary>
        </member>
        <member name="M:Phone.Storage.DefinitionException.#ctor(System.String)">
            <summary>
            Initializes a new instance of the DefinitionException class
            with a specified message.
            </summary>
            <param name="message">The details of the error.</param>
        </member>
        <member name="M:Phone.Storage.DefinitionException.#ctor(System.String,System.Exception)">
            <summary>
            Initializes a new instance of the DefinitionException class
            with a specified message that encapsulates an initial error.
            </summary>
            <param name="message">The details of the error.</param>
            <param name="inner">The initial error.</param>
        </member>
        <member name="T:Phone.Storage.Serializer.TypedCollectionSerializer`1">
            <summary>
            Implements a serializer for <see cref="T:System.Collections.Generic.ICollection`1"/> instances.
            </summary>
            <typeparam name="T">
            The type of elements in the serialized collections.
            </typeparam>
        </member>
        <member name="F:Phone.Storage.Serializer.TypedCollectionSerializer`1.elementSerializer">
            <summary>
            The serializer used to serialize the <typeparamref name="T"/> elements.
            </summary>
        </member>
        <member name="M:Phone.Storage.Serializer.TypedCollectionSerializer`1.#ctor(Phone.Storage.ISerializer)">
            <summary>
            Initializes a new instance of the TypedCollectionSerializer class.
            </summary>
            <param name="elementSerializer">
            The serializer used to serialize the <typeparamref name="T"/> elements.
            </param>
        </member>
        <member name="M:Phone.Storage.Serializer.TypedCollectionSerializer`1.InternalCanSerialize(System.Type)">
            <summary>
            Implements the <see cref="M:Phone.Storage.ISerializer.CanSerialize(System.Type)"/> logic.
            </summary>
            <param name="type">
            The reference type - guaranty to be not <c>null</c>.
            </param>
            <returns>
            <c>true</c> if the serializer can work with instances of <paramref name="type"/>;
            <c>false</c> otherwise.
            </returns>
        </member>
        <member name="M:Phone.Storage.Serializer.TypedCollectionSerializer`1.InternalCanWorkInPlace(System.Type)">
            <summary>
            Implements the <see cref="M:Phone.Storage.ISerializer.CanWorkInPlace(System.Type)"/> logic.
            </summary>
            <param name="type">
            The reference type - guaranty to be not <c>null</c>.
            </param>
            <returns>
            <c>true</c> if the serializer can work with initialized instances of
            <paramref name="type"/>; <c>false</c> otherwise.
            </returns>
        </member>
        <member name="M:Phone.Storage.Serializer.TypedCollectionSerializer`1.InternalSerialize(System.IO.BinaryWriter,System.Type,System.Object)">
            <summary>
            Implements the serialization logic for <see cref="T:System.Collections.Generic.ICollection`1"/>.
            </summary>
            <param name="writer">
            The writer - guaranty to be not <c>null</c>.
            </param>
            <param name="type">
            The reference type - guaranty to be not <c>null</c>.
            </param>
            <param name="value">
            The value to serialize - guaranty to be not <c>null</c> and associated with
            the current serializer.
            </param>
        </member>
        <member name="M:Phone.Storage.Serializer.TypedCollectionSerializer`1.InternalDeserialize(System.IO.BinaryReader,System.Type)">
            <summary>
            Implements the deserialization logic.
            </summary>
            <param name="reader">
            The reader - guaranty to be not <c>null</c>.
            </param>
            <param name="type">
            The reference type - guaranty to be not <c>null</c>.
            </param>
            <returns>The deserialized value.</returns>
        </member>
        <member name="M:Phone.Storage.Serializer.TypedCollectionSerializer`1.InternalDeserialize(System.IO.BinaryReader,System.Type,System.Object)">
            <summary>
            Implements the in-place deserialization logic.
            </summary>
            <param name="reader">
            The reader - guaranty to be not <c>null</c>.
            </param>
            <param name="type">
            The reference type - guaranty to be not <c>null</c>.
            </param>
            <param name="value">
            The container for the deserialized object - guaranty to be not <c>null</c>.
            </param>
        </member>
        <member name="T:Phone.Storage.Serializer.DateTimeSerializer">
            <summary>
            Provides the serialization logic associated with <see cref="T:System.DateTime"/> instances.
            </summary>
        </member>
        <member name="M:Phone.Storage.Serializer.DateTimeSerializer.InternalSerialize(System.IO.BinaryWriter,System.Object)">
            <summary>
            Serializes a <see cref="T:System.DateTime"/> value.
            </summary>
            <param name="writer">The target writer.</param>
            <param name="value">The serialized value.</param>
        </member>
        <member name="M:Phone.Storage.Serializer.DateTimeSerializer.InternalDeserialize(System.IO.BinaryReader)">
            <summary>
            Reads a <see cref="T:System.DateTime"/> value.
            </summary>
            <param name="reader">The source reader.</param>
            <returns>The deserialized value.</returns>
        </member>
        <member name="P:Phone.Storage.Serializer.DateTimeSerializer.AssociatedType">
            <summary>
            Gets the <see cref="T:System.DateTime"/> type.
            </summary>
        </member>
        <member name="T:Phone.Storage.Serializer.CollectionSerializer">
            <summary>
            Implements the serializer for any instance of <see cref="T:System.Collections.Generic.ICollection`1"/>.
            </summary>
        </member>
        <member name="F:Phone.Storage.Serializer.CollectionSerializer.parent">
            <summary>
            The parent serializer used to serialize the element of the collections.
            </summary>
        </member>
        <member name="F:Phone.Storage.Serializer.CollectionSerializer.cache">
            <summary>
            The cache of the already available serializer.
            </summary>
            <remarks>
            The keys are collection types.
            </remarks>
        </member>
        <member name="F:Phone.Storage.Serializer.CollectionSerializer.children">
            <summary>
            The cache of created serializer for each element type.
            </summary>
            <remarks>
            The keys are element types.
            </remarks>
        </member>
        <member name="F:Phone.Storage.Serializer.CollectionSerializer.definition">
            <summary>
            The generic definition associated with <see cref="T:System.Collections.Generic.ICollection`1"/>.
            </summary>
        </member>
        <member name="F:Phone.Storage.Serializer.CollectionSerializer.retrieveMethod">
            <summary>
            The generic definition associated with <see cref="M:Phone.Storage.Serializer.CollectionSerializer.Retrieve``1"/>.
            </summary>
        </member>
        <member name="M:Phone.Storage.Serializer.CollectionSerializer.#ctor(Phone.Storage.ISerializer)">
            <summary>
            Initializes a new instance of the CollectionSerializer class.
            </summary>
            <param name="parent">
            The parent serializer used to serialize the element of the collections.
            </param>
        </member>
        <member name="M:Phone.Storage.Serializer.CollectionSerializer.Retrieve``1">
            <summary>
            Retrieves or creates a <see cref="T:Phone.Storage.Serializer.TypedCollectionSerializer`1"/> for a
            specified type.
            </summary>
            <typeparam name="T">The type of the elements.</typeparam>
            <returns>
            The associated <see cref="T:Phone.Storage.Serializer.TypedCollectionSerializer`1"/> instance;
            or <c>null</c> if the <see cref="P:Phone.Storage.Serializer.CollectionSerializer.Parent"/> can serialize
            <typeparamref name="T"/> elements.
            </returns>
        </member>
        <member name="M:Phone.Storage.Serializer.CollectionSerializer.Retrieve(System.Type)">
            <summary>
            Retrieves of creates a <see cref="T:Phone.Storage.Serializer.TypedCollectionSerializer`1"/> for a
            specified collection type.
            </summary>
            <param name="type">The collection type.</param>
            <returns>The associated <see cref="T:Phone.Storage.Serializer.TypedCollectionSerializer`1"/> instance.</returns>
            <exception cref="T:System.NotSupportedException">
            The <paramref name="type"/> doesn't inherit from <see cref="T:System.Collections.Generic.ICollection`1"/> interface.
            </exception>
            <exception cref="T:System.NotSupportedException">
            The <paramref name="type"/> is a generic type definition.
            </exception>
            <exception cref="T:System.NotSupportedException">
            The <see cref="P:Phone.Storage.Serializer.CollectionSerializer.Parent"/> can't serialize elements of the
            <paramref name="type"/> collection.
            </exception>
        </member>
        <member name="M:Phone.Storage.Serializer.CollectionSerializer.InternalCanSerialize(System.Type)">
            <summary>
            Implements the <see cref="M:Phone.Storage.ISerializer.CanSerialize(System.Type)"/> logic.
            </summary>
            <param name="type">
            The reference type - guaranty to be not <c>null</c>.
            </param>
            <returns>
            <c>true</c> if the serializer can work with instances of <paramref name="type"/>;
            <c>false</c> otherwise.
            </returns>
        </member>
        <member name="M:Phone.Storage.Serializer.CollectionSerializer.InternalCanWorkInPlace(System.Type)">
            <summary>
            Implements the <see cref="M:Phone.Storage.ISerializer.CanWorkInPlace(System.Type)"/> logic.
            </summary>
            <param name="type">
            The reference type - guaranty to be not <c>null</c>.
            </param>
            <returns>
            <c>true</c> if the serializer can work with initialized instances of
            <paramref name="type"/>; <c>false</c> otherwise.
            </returns>
        </member>
        <member name="M:Phone.Storage.Serializer.CollectionSerializer.InternalSerialize(System.IO.BinaryWriter,System.Type,System.Object)">
            <summary>
            Implements the serialization logic.
            </summary>
            <param name="writer">
            The writer - guaranty to be not <c>null</c>.
            </param>
            <param name="type">
            The reference type - guaranty to be not <c>null</c>.
            </param>
            <param name="value">
            The value to serialize - guaranty to be not <c>null</c> and associated with
            the current serializer.
            </param>
        </member>
        <member name="M:Phone.Storage.Serializer.CollectionSerializer.InternalDeserialize(System.IO.BinaryReader,System.Type)">
            <summary>
            Implements the deserialization logic.
            </summary>
            <param name="reader">
            The reader - guaranty to be not <c>null</c>.
            </param>
            <param name="type">
            The reference type - guaranty to be not <c>null</c>.
            </param>
            <returns>The deserialized value.</returns>
        </member>
        <member name="M:Phone.Storage.Serializer.CollectionSerializer.InternalDeserialize(System.IO.BinaryReader,System.Type,System.Object)">
            <summary>
            Implements the in-place deserialization logic.
            </summary>
            <param name="reader">
            The reader - guaranty to be not <c>null</c>.
            </param>
            <param name="type">
            The reference type - guaranty to be not <c>null</c>.
            </param>
            <param name="value">
            The container for the deserialized object - guaranty to be not <c>null</c>.
            </param>
        </member>
        <member name="P:Phone.Storage.Serializer.CollectionSerializer.Parent">
            <summary>
            Gets the parent serializer used to serialize the element of the collections.
            </summary>
        </member>
        <member name="T:Phone.Storage.Api.DefaultInitializer">
            <summary>
            Implements  the <see cref="T:Phone.Storage.IInitializer"/> interface for the basic types and the default
            serialization behaviors.
            </summary>
        </member>
        <member name="T:Phone.Storage.Api.Initializable">
            <summary>
            Implements an initialization process that can be used in any children class.
            </summary>
            <remarks>
            The initialization process is based on two methods:
            <list type="table">
            <item>
            <term><see cref="M:Phone.Storage.Api.Initializable.Initialize"/></term>
            <description>initializes the current instance - if not already done.</description>
            </item>
            <item>
            <term><see cref="M:Phone.Storage.Api.Initializable.AssertNotInitialized"/></term>
            <description>ensures that the instance is not already initialized.</description>
            </item>
            </list>
            <para>Those methods are thread-safe.</para>
            </remarks>
        </member>
        <member name="F:Phone.Storage.Api.Initializable.syncObject">
            <summary>
            The object used to synchronize multi-thread calls to the instance.
            </summary>
        </member>
        <member name="F:Phone.Storage.Api.Initializable.initialized">
            <summary>
            A value indicating whether the current instance is already initialized.
            </summary>
        </member>
        <member name="M:Phone.Storage.Api.Initializable.#ctor">
            <summary>
            Initializes a new instance of the Initializable class.
            </summary>
        </member>
        <member name="M:Phone.Storage.Api.Initializable.AssertNotInitialized">
            <summary>
            Ensures that the instance is not already initialized.
            </summary>
            <exception cref="T:Phone.Storage.AlreadyInitializedException">
            The current instance is already initialized.
            </exception>
        </member>
        <member name="M:Phone.Storage.Api.Initializable.Initialize">
            <summary>
            Initializes the current instance.
            </summary>
        </member>
        <member name="M:Phone.Storage.Api.Initializable.InternalInitialize">
            <summary>
            Implements the initialization process.
            </summary>
        </member>
        <member name="P:Phone.Storage.Api.Initializable.Initialized">
            <summary>
            Gets a value indicating whether the current instance is already initialized.
            </summary>
        </member>
        <member name="P:Phone.Storage.Api.Initializable.SyncObject">
            <summary>
            Gets the synchronization object used by the current instance.
            </summary>
        </member>
        <member name="T:Phone.Storage.IInitializer">
            <summary>
            Defines how a new data source is initialized by the engine.
            </summary>
        </member>
        <member name="M:Phone.Storage.IInitializer.CreateSerializers(Phone.Storage.IDataSource,Phone.Storage.IGroupedSerializer)">
            <summary>
            Adds default serializers to a provided group.
            </summary>
            <param name="datasource">
            The initialized data source.
            </param>
            <param name="serializers">
            The serializers used for the properties of the <paramref name="datasource"/>.
            </param>
            <exception cref="T:System.ArgumentNullException">
            One of the parameters is <c>null</c>.
            </exception>
        </member>
        <member name="M:Phone.Storage.IInitializer.CreateLinkSerializer(Phone.Storage.IDataSource,Phone.Storage.IClassDefinition,Phone.Storage.ISerializer)">
            <summary>
            Creates a serializer used for the links with a specified persisted class.
            </summary>
            <param name="datasource">The initialized data source.</param>
            <param name="definition">The definition of the linked elements.</param>
            <param name="propertySerializer">The serializer used for properties.</param>
            <returns>The serializer used to serialize the links of the <paramref name="definition"/> class.</returns>
        </member>
        <member name="M:Phone.Storage.IInitializer.CreateClassSerializer(Phone.Storage.IDataSource,Phone.Storage.IClassDefinition,Phone.Storage.ISerializer)">
            <summary>
            Creates a serializer used for the instance of a specified persisted class.
            </summary>
            <param name="datasource">The initialized data source.</param>
            <param name="definition">The definition of the serialized instances.</param>
            <param name="propertySerializer">The serializer used for properties.</param>
            <returns>The serializer used to serialize the instances of the <paramref name="definition"/> class.</returns>
        </member>
        <member name="F:Phone.Storage.Api.DefaultInitializer.shared">
            <summary>
            The serializers shared by all the data sources created with this initializer.
            </summary>
        </member>
        <member name="F:Phone.Storage.Api.DefaultInitializer.extendedCreators">
            <summary>
            The methods used to create extended serializers.
            </summary>
        </member>
        <member name="M:Phone.Storage.Api.DefaultInitializer.#ctor">
            <summary>
            Initializes a new instance of the DefaultInitializer class.
            </summary>
        </member>
        <member name="M:Phone.Storage.Api.DefaultInitializer.CreateSerializers(Phone.Storage.IDataSource,Phone.Storage.IGroupedSerializer)">
            <summary>
            Adds serializers to a provided group.
            </summary>
            <param name="datasource">
            The initialized data source.
            </param>
            <param name="serializers">
            The serializers used for the properties of the <paramref name="datasource"/>.
            </param>
            <exception cref="T:System.ArgumentNullException">
            One of the parameters is <c>null</c>.
            </exception>
        </member>
        <member name="M:Phone.Storage.Api.DefaultInitializer.CreateLinkSerializer(Phone.Storage.IDataSource,Phone.Storage.IClassDefinition,Phone.Storage.ISerializer)">
            <summary>
            Creates a serializer used for the links with a specified persisted class.
            </summary>
            <param name="datasource">The initialized data source.</param>
            <param name="definition">The definition of the linked elements.</param>
            <param name="propertySerializer">The serializer used for properties.</param>
            <returns>The serializer used to serialize the links of the <paramref name="definition"/> class.</returns>
        </member>
        <member name="M:Phone.Storage.Api.DefaultInitializer.CreateClassSerializer(Phone.Storage.IDataSource,Phone.Storage.IClassDefinition,Phone.Storage.ISerializer)">
            <summary>
            Creates a serializer used for the instance of a specified persisted class.
            </summary>
            <param name="datasource">The initialized data source.</param>
            <param name="definition">The definition of the serialized instances.</param>
            <param name="propertySerializer">The serializer used for properties.</param>
            <returns>The serializer used to serialize the instances of the <paramref name="definition"/> class.</returns>
        </member>
        <member name="M:Phone.Storage.Api.DefaultInitializer.AddSerializer(Phone.Storage.ISerializer)">
            <summary>
            Adds a new basic serializer as part of the shared serializers.
            </summary>
            <param name="serializer">The new serializer.</param>
            <returns>The current initializer.</returns>
            <exception cref="T:Phone.Storage.AlreadyInitializedException">
            The initializer has already been used and can't be modified.
            </exception>
        </member>
        <member name="M:Phone.Storage.Api.DefaultInitializer.InternalInitialize">
            <summary>
            Initializes the current instance.
            </summary>
        </member>
        <member name="T:Phone.Storage.Api.ClassSerializer">
            <summary>
            Implements the <see cref="T:Phone.Storage.ISerializer"/> contract for the class definition
            as part of the default serialization strategy.
            </summary>
            <remarks>
            This serializer breaks the <see cref="T:Phone.Storage.ISerializer"/> contract has the default
            deserialization (that creates a new instance) is not implemented.
            As a result, this implementation should not be used as part of a chain-of-responsibility.
            </remarks>
            <seealso cref="M:Phone.Storage.IInitializer.CreateClassSerializer(Phone.Storage.IDataSource,Phone.Storage.IClassDefinition,Phone.Storage.ISerializer)"/>
        </member>
        <member name="F:Phone.Storage.Api.ClassSerializer.definition">
            <summary>
            The associated class definition.
            </summary>
        </member>
        <member name="F:Phone.Storage.Api.ClassSerializer.propertySerializer">
            <summary>
            The serializer(s) used for all the properties of the class instances.
            </summary>
        </member>
        <member name="M:Phone.Storage.Api.ClassSerializer.#ctor(Phone.Storage.IClassDefinition,Phone.Storage.ISerializer)">
            <summary>
            Initializes a new instance of the ClassSerializer class.
            </summary>
            <param name="definition">
            The associated class definition.
            </param>
            <param name="propertySerializer">
            The serializer(s) used for all the properties of the class instances.
            </param>
        </member>
        <member name="M:Phone.Storage.Api.ClassSerializer.InternalCanWorkInPlace(System.Type)">
            <summary>
            Checks whether the <see cref="M:Phone.Storage.ISerializer.Deserialize(System.IO.BinaryReader,System.Type,System.Object)"/>*
            method is implemented by this serializer.
            </summary>
            <param name="type">The checked type.</param>
            <returns>
            The same value than <see cref="M:Phone.Storage.ISerializer.CanSerialize(System.Type)"/>.
            </returns>
        </member>
        <member name="M:Phone.Storage.Api.ClassSerializer.InternalSerialize(System.IO.BinaryWriter,System.Object)">
            <summary>
            Implements the serialization logic for the type associated with this serializer.
            </summary>
            <param name="writer">
            The writer - guaranty to be not <c>null</c>.
            </param>
            <param name="value">
            The value to serialize - guaranty to be not <c>null</c> and associated with
            the current serializer.
            </param>
        </member>
        <member name="M:Phone.Storage.Api.ClassSerializer.InternalDeserialize(System.IO.BinaryReader,System.Type,System.Object)">
            <summary>
            Implements the in-place deserialization logic.
            </summary>
            <param name="reader">
            The reader - guaranty to be not <c>null</c>.
            </param>
            <param name="type">
            The reference type - guaranty to be not <c>null</c>.
            </param>
            <param name="instance">
            The container for the deserialized object - guaranty to be not <c>null</c>.
            </param>
        </member>
        <member name="M:Phone.Storage.Api.ClassSerializer.InternalDeserialize(System.IO.BinaryReader)">
            <summary>
            Implements the deserialization logic for the type associated with this serializer
            - always raises a <see cref="T:System.NotSupportedException"/> exception.
            </summary>
            <param name="reader">
            The reader - guaranty to be not <c>null</c>.
            </param>
            <returns>Always raises a <see cref="T:System.NotSupportedException"/> exception.</returns>
            <exception cref="T:System.NotSupportedException">
            This serializer doesn't support normal deserialization process.
            </exception>
        </member>
        <member name="P:Phone.Storage.Api.ClassSerializer.AssociatedType">
            <summary>
            Gets the type of elements managed by the serializer.
            </summary>
            <value>
            The type associated with the class definition.
            </value>
        </member>
        <member name="T:Phone.Storage.Api.DefaultClassDefinition`2">
            <summary>
            The default implementation of the <see cref="T:Phone.Storage.IClassDefinition"/> interface.
            </summary>
            <typeparam name="T">
            The type of the persisted objects.
            </typeparam>
            <typeparam name="TKey">
            The type of the identifier associated with <typeparamref name="T"/>.
            </typeparam>
        </member>
        <member name="T:Phone.Storage.IClassDefinition">
            <summary>
            Defines the concept of persisted class.
            </summary>
            <remarks>
            The implementations of this interface should be immutable to avoid any side effect.
            </remarks>
        </member>
        <member name="M:Phone.Storage.IClassDefinition.RetrieveKey(System.Object)">
            <summary>
            Retrieves the unique key of an object associated with this definition.
            </summary>
            <param name="value">A <see cref="P:Phone.Storage.IClassDefinition.Type"/> instance.</param>
            <returns>
            The associated identifier  of <see cref="P:Phone.Storage.IClassDefinition.KeyType"/> type.
            </returns>
        </member>
        <member name="M:Phone.Storage.IClassDefinition.CreateInstance(System.Object)">
            <summary>
            Creates an new instance of the persisted class.
            </summary>
            <param name="key">
            The unique key of the instance of <see cref="P:Phone.Storage.IClassDefinition.KeyType"/> type.
            </param>
            <returns>
            The created <see cref="P:Phone.Storage.IClassDefinition.Type"/> instance.
            </returns>
            <remarks>
            The <paramref name="key"/> should only be used if the key
            is not part of the serialized properties.
            </remarks>
            <exception cref="T:System.ArgumentNullException">
            The <paramref name="key"/> parameter is <c>null</c>.
            </exception>
            <exception cref="T:Phone.Storage.WrongKeyTypeException">
            The <paramref name="key"/> is not a <see cref="P:Phone.Storage.IClassDefinition.KeyType"/> instance.
            </exception>
        </member>
        <member name="P:Phone.Storage.IClassDefinition.Type">
            <summary>
            Gets the type of the persisted instances.
            </summary>
        </member>
        <member name="P:Phone.Storage.IClassDefinition.KeyType">
            <summary>
            Gets the type of the associated key.
            </summary>
        </member>
        <member name="P:Phone.Storage.IClassDefinition.Properties">
            <summary>
            Gets the definitions of the serialized properties.
            </summary>
        </member>
        <member name="F:Phone.Storage.Api.DefaultClassDefinition`2.retrieveKey">
            <summary>
            The function used to extract the identifier of a <typeparamref name="T"/> object.
            </summary>
        </member>
        <member name="F:Phone.Storage.Api.DefaultClassDefinition`2.createInstance">
            <summary>
            The function used to create new instance of the <typeparamref name="T"/> class.
            </summary>
        </member>
        <member name="F:Phone.Storage.Api.DefaultClassDefinition`2.properties">
            <summary>
            The serialized properties.
            </summary>
        </member>
        <member name="F:Phone.Storage.Api.DefaultClassDefinition`2.propertiesRO">
            <summary>
            The read-only collection associated with <c>DefaultClassDefinition.properties</c>.
            </summary>
        </member>
        <member name="M:Phone.Storage.Api.DefaultClassDefinition`2.#ctor(System.Func{`0,`1},System.Func{`1,`0})">
            <summary>
            Initializes a new instance of the DefaultClassDefinition class.
            </summary>
            <param name="retrieveKey">
            The function used to extract the identifier of a <typeparamref name="T"/> object.
            </param>
            <param name="createInstance">
            The function used to create new instance of the <typeparamref name="T"/> class.
            </param>
        </member>
        <member name="M:Phone.Storage.Api.DefaultClassDefinition`2.Initialize">
            <summary>
            Extracts all the serializable properties of the associated type.
            </summary>
        </member>
        <member name="M:Phone.Storage.Api.DefaultClassDefinition`2.RetrieveKey(System.Object)">
            <summary>
            Retrieves the unique key of an object associated with this definition.
            </summary>
            <param name="value">A <see cref="P:Phone.Storage.IClassDefinition.Type"/> instance.</param>
            <returns>
            The associated identifier  of <see cref="P:Phone.Storage.IClassDefinition.KeyType"/> type.
            </returns>
        </member>
        <member name="M:Phone.Storage.Api.DefaultClassDefinition`2.CreateInstance(System.Object)">
            <summary>
            Creates an new instance of the persisted class.
            </summary>
            <param name="key">The unique key of the instance.</param>
            <returns>The created instance.</returns>
            <remarks>
            The <paramref name="key"/> should only be used if the key
            is not part ofte serialized properties.
            </remarks>
        </member>
        <member name="P:Phone.Storage.Api.DefaultClassDefinition`2.Type">
            <summary>
            Gets the type of the persisted instances.
            </summary>
        </member>
        <member name="P:Phone.Storage.Api.DefaultClassDefinition`2.KeyType">
            <summary>
            Gets the type of the associated key.
            </summary>
        </member>
        <member name="P:Phone.Storage.Api.DefaultClassDefinition`2.Properties">
            <summary>
            Gets the definitions of the serialized properties.
            </summary>
            <remarks>
            This collection is read-only.
            </remarks>
        </member>
        <member name="T:Phone.Storage.Serializer.UInt64Serializer">
            <summary>
            Provides the serialization logic associated with <see cref="T:System.UInt64"/> instances.
            </summary>
        </member>
        <member name="M:Phone.Storage.Serializer.UInt64Serializer.InternalSerialize(System.IO.BinaryWriter,System.Object)">
            <summary>
            Serializes a <see cref="T:System.UInt64"/> value.
            </summary>
            <param name="writer">The target writer.</param>
            <param name="value">The serialized value.</param>
        </member>
        <member name="M:Phone.Storage.Serializer.UInt64Serializer.InternalDeserialize(System.IO.BinaryReader)">
            <summary>
            Reads a <see cref="T:System.UInt64"/> value.
            </summary>
            <param name="reader">The source reader.</param>
            <returns>The deserialized value.</returns>
        </member>
        <member name="P:Phone.Storage.Serializer.UInt64Serializer.AssociatedType">
            <summary>
            Gets the <see cref="T:System.UInt64"/> type.
            </summary>
        </member>
        <member name="T:Phone.Storage.ReadOnlyCollection`1">
            <summary>
            Provides a read-only layer around an existing collection.
            </summary>
            <typeparam name="T">
            The type of the elements in the collection.
            </typeparam>
        </member>
        <member name="F:Phone.Storage.ReadOnlyCollection`1.encapsulated">
            <summary>
            The encapsulated collection.
            </summary>
        </member>
        <member name="M:Phone.Storage.ReadOnlyCollection`1.#ctor(System.Collections.Generic.ICollection{`0})">
            <summary>
            Initializes a new instance of the ReadOnlyCollection class.
            </summary>
            <param name="encapsulated">
            The encapsulated collection.
            </param>
            <exception cref="T:System.ArgumentNullException">
            The <paramref name="encapsulated"/> parameter is <c>null</c>.
            </exception>
        </member>
        <member name="M:Phone.Storage.ReadOnlyCollection`1.Add(`0)">
            <summary>
            Adds an item to this collection - always raises <see cref="T:System.NotSupportedException"/>.
            </summary>
            <param name="item">The object to add to this collection.</param>
            <exception cref="T:System.NotSupportedException">
            The collection is read-only.
            </exception>
        </member>
        <member name="M:Phone.Storage.ReadOnlyCollection`1.Clear">
            <summary>
            Removes all items from this collection - always raises <see cref="T:System.NotSupportedException"/>.
            </summary>
            <exception cref="T:System.NotSupportedException">
            The collection is read-only.
            </exception>
        </member>
        <member name="M:Phone.Storage.ReadOnlyCollection`1.Remove(`0)">
            <summary>
            Removes the first occurrence of a specific object from this collection
            - always raises <see cref="T:System.NotSupportedException"/>.
            </summary>
            <param name="item">The object to remove from this collection.</param>
            <returns>Always raises <see cref="T:System.NotSupportedException"/>.</returns>
            <exception cref="T:System.NotSupportedException">
            The collection is read-only.
            </exception>
        </member>
        <member name="M:Phone.Storage.ReadOnlyCollection`1.Contains(`0)">
            <summary>
            Determines whether this collection contains a specific value.
            </summary>
            <param name="item">The object to locate in this collection.</param>
            <returns>
            <c>true</c> if item is found in this collection;
            otherwise, <c>false</c>.
            </returns>
        </member>
        <member name="M:Phone.Storage.ReadOnlyCollection`1.CopyTo(`0[],System.Int32)">
            <summary>
            Copies the elements of this collection to an <see cref="T:System.Array"/>,
            starting at a particular index.
            </summary>
            <param name="array">
            The one-dimensional <see cref="T:System.Array"/> that is the destination of the elements
            copied from this collection. The <see cref="T:System.Array"/> must have zero-based indexing.
            </param>
            <param name="arrayIndex">
            The zero-based index in array at which copying begins.
            </param>
            <exception cref="T:System.ArgumentNullException">
            The <paramref name="array"/> parameter is <c>null</c>.
            </exception>
            <exception cref="T:System.ArgumentOutOfRangeException">
            The <paramref name="arrayIndex"/> parameter is less than 0.
            </exception>
            <exception cref="T:System.ArgumentException">
            The <paramref name="array"/> is multidimensional.
            -or-The number of elements in the source collection is greater than the available space
            from <paramref name="arrayIndex"/> to the end of the destination <paramref name="array"/>.
            -or-Type T cannot be cast automatically to the type of the destination
            <paramref name="array"/>.
            </exception>
        </member>
        <member name="M:Phone.Storage.ReadOnlyCollection`1.GetEnumerator">
            <summary>
            Returns an enumerator that iterates through the collection.
            </summary>
            <returns>
            A <see cref="T:System.Collections.Generic.IEnumerator`1"/> that can be used to iterate through the collection.
            </returns>
        </member>
        <member name="M:Phone.Storage.ReadOnlyCollection`1.System#Collections#IEnumerable#GetEnumerator">
            <summary>
            Returns an enumerator that iterates through the collection.
            </summary>
            <returns>
            A <see cref="T:System.Collections.IEnumerator"/> that can be used to iterate through the collection.
            </returns>
        </member>
        <member name="P:Phone.Storage.ReadOnlyCollection`1.Count">
            <summary>
            Gets the number of elements contained in this collection.
            </summary>
        </member>
        <member name="P:Phone.Storage.ReadOnlyCollection`1.IsReadOnly">
            <summary>
            Gets a value indicating whether this collection is read-only.
            </summary>
            <value>Always <c>true</c>.</value>
        </member>
        <member name="T:Phone.Storage.InstanceEventArgs">
            <summary>
            Provides data for the <see cref="E:Phone.Storage.IDataSource.Loaded"/>,
            <see cref="E:Phone.Storage.IDataSource.Saving"/>, <see cref="E:Phone.Storage.IDataSource.Saved"/>
            events.
            </summary>
            <seealso cref="T:Phone.Storage.IDataSource"/>
        </member>
        <member name="F:Phone.Storage.InstanceEventArgs.classType">
            <summary>
            The type of the associated persisted class.
            </summary>
        </member>
        <member name="F:Phone.Storage.InstanceEventArgs.instance">
            <summary>
            The persisted instance.
            </summary>
        </member>
        <member name="M:Phone.Storage.InstanceEventArgs.#ctor(System.Type,System.Object)">
            <summary>
            Initializes a new instance of the InstanceEventArgs class.
            </summary>
            <param name="classType">The type of the associated persisted class.</param>
            <param name="instance">The persisted instance.</param>
            <exception cref="T:System.ArgumentNullException">
            One of the parameter is <c>null</c>.
            </exception>
            <exception cref="T:System.ArgumentException">
            The <paramref name="instance"/> is not an instance of <paramref name="classType"/>.
            </exception>
        </member>
        <member name="P:Phone.Storage.InstanceEventArgs.ClassType">
            <summary>
            Gets the type of the associated persisted class.
            </summary>
        </member>
        <member name="P:Phone.Storage.InstanceEventArgs.Instance">
            <summary>
            Gets the persisted instance.
            </summary>
        </member>
        <member name="T:Phone.Storage.IDataSource">
            <summary>
            Defines the actions available on the data source to manipulates data.
            </summary>
        </member>
        <member name="M:Phone.Storage.IDataSource.Query``1">
            <summary>
            Creates a new query to extract values for a specified persisted class.
            </summary>
            <typeparam name="T">The type of the persisted class.</typeparam>
            <returns>The query object.</returns>
            <exception cref="T:Phone.Storage.UnknownClassException">
            <typeparamref name="T"/> is not a persisted class.
            </exception>
        </member>
        <member name="M:Phone.Storage.IDataSource.Load``1(System.Object)">
            <summary>
            Loads a specified persisted instance.
            </summary>
            <typeparam name="T">The type of the retrieved instance.</typeparam>
            <param name="key">The key of the retrieved instance.</param>
            <returns>The retrieved instance.</returns>
            <exception cref="T:System.ArgumentNullException">
            The <paramref name="key"/> parameter is <c>null</c>.
            </exception>
            <exception cref="T:Phone.Storage.UnknownClassException">
            <typeparamref name="T"/> is not a persisted class.
            </exception>
            <exception cref="T:Phone.Storage.WrongKeyTypeException">
            The <paramref name="key"/> parameter is not of the expected type.
            </exception>
            <exception cref="T:System.Collections.Generic.KeyNotFoundException">
            There is no element associated with the specified <paramref name="key"/>.
            </exception>
        </member>
        <member name="M:Phone.Storage.IDataSource.Save``1(``0)">
            <summary>
            Persists a specified instance.
            </summary>
            <typeparam name="T">The type of the saved instance.</typeparam>
            <param name="instance">The instance to persist.</param>
            <exception cref="T:System.ArgumentNullException">
            The <paramref name="instance"/> parameter is <c>null</c>.
            </exception>
            <exception cref="T:Phone.Storage.UnknownClassException">
            <typeparamref name="T"/> is not a persisted class.
            </exception>
        </member>
        <member name="M:Phone.Storage.IDataSource.Delete``1(System.Object)">
            <summary>
            Deletes a specified instance.
            </summary>
            <typeparam name="T">The type of the deleted instance.</typeparam>
            <param name="key">The key of the deleted instance.</param>
            <exception cref="T:System.ArgumentNullException">
            The <paramref name="key"/> parameter is <c>null</c>.
            </exception>
            <exception cref="T:Phone.Storage.UnknownClassException">
            <typeparamref name="T"/> is not a persisted class.
            </exception>
            <exception cref="T:Phone.Storage.WrongKeyTypeException">
            The <paramref name="key"/> parameter is not of the expected type.
            </exception>
            <exception cref="T:System.Collections.Generic.KeyNotFoundException">
            There is no element associated with the specified <paramref name="key"/>.
            </exception>
        </member>
        <member name="M:Phone.Storage.IDataSource.RemoveEverything">
            <summary>
            Removes and cleans everything associated with the data source.
            As expected, this action is irreversible.
            </summary>
        </member>
        <member name="E:Phone.Storage.IDataSource.Saving">
            <summary>
            Occurs before saving an object.
            </summary>
        </member>
        <member name="E:Phone.Storage.IDataSource.Loading">
            <summary>
            Occurs before loading an object.
            </summary>
        </member>
        <member name="E:Phone.Storage.IDataSource.Deleting">
            <summary>
            Occurs before deleting an object.
            </summary>
        </member>
        <member name="E:Phone.Storage.IDataSource.Saved">
            <summary>
            Occurs after saving an object.
            </summary>
        </member>
        <member name="E:Phone.Storage.IDataSource.Loaded">
            <summary>
            Occurs after loading an object.
            </summary>
        </member>
        <member name="E:Phone.Storage.IDataSource.Deleted">
            <summary>
            Occurs after deleting an object.
            </summary>
        </member>
        <member name="P:Phone.Storage.IDataSource.Name">
            <summary>
            Gets the unique name of the data source.
            </summary>
            <remarks>
            This name should be unique in the current application context to avoid
            data collisions and impredictable issues.
            </remarks>
        </member>
        <member name="T:Phone.Storage.Serializer.StringSerializer">
            <summary>
            Provides the serialization logic associated with <see cref="T:System.String"/> instances.
            </summary>
        </member>
        <member name="M:Phone.Storage.Serializer.StringSerializer.InternalSerialize(System.IO.BinaryWriter,System.Object)">
            <summary>
            Serializes a <see cref="T:System.String"/> value.
            </summary>
            <param name="writer">The target writer.</param>
            <param name="value">The serialized value.</param>
        </member>
        <member name="M:Phone.Storage.Serializer.StringSerializer.InternalDeserialize(System.IO.BinaryReader)">
            <summary>
            Reads a <see cref="T:System.String"/> value.
            </summary>
            <param name="reader">The source reader.</param>
            <returns>The deserialized value.</returns>
        </member>
        <member name="P:Phone.Storage.Serializer.StringSerializer.AssociatedType">
            <summary>
            Gets the <see cref="T:System.String"/> type.
            </summary>
        </member>
        <member name="T:Phone.Storage.Serializer.DoubleSerializer">
            <summary>
            Provides the serialization logic associated with <see cref="T:System.Double"/> instances.
            </summary>
        </member>
        <member name="M:Phone.Storage.Serializer.DoubleSerializer.InternalSerialize(System.IO.BinaryWriter,System.Object)">
            <summary>
            Serializes a <see cref="T:System.Double"/> value.
            </summary>
            <param name="writer">The target writer.</param>
            <param name="value">The serialized value.</param>
        </member>
        <member name="M:Phone.Storage.Serializer.DoubleSerializer.InternalDeserialize(System.IO.BinaryReader)">
            <summary>
            Reads a <see cref="T:System.Double"/> value.
            </summary>
            <param name="reader">The source reader.</param>
            <returns>The deserialized value.</returns>
        </member>
        <member name="P:Phone.Storage.Serializer.DoubleSerializer.AssociatedType">
            <summary>
            Gets the <see cref="T:System.Double"/> type.
            </summary>
        </member>
        <member name="T:Phone.Storage.Api.SavingCache">
            <summary>
            Implements a simple cache used to avoid cycle during saving.
            </summary>
        </member>
        <member name="F:Phone.Storage.Api.SavingCache.cache">
            <summary>
            The saved data.
            </summary>
        </member>
        <member name="M:Phone.Storage.Api.SavingCache.IsSaved(System.Type,System.Object)">
            <summary>
            Checks if a specific object is already saved.
            </summary>
            <param name="type">The type of the object.</param>
            <param name="key">The key of the object.</param>
            <returns>
            <c>true</c> if the object associated with <paramref name="key"/> is already saved;
            <c>false</c> otherwise.
            </returns>
        </member>
        <member name="M:Phone.Storage.Api.SavingCache.Saved(System.Type,System.Object)">
            <summary>
            Registers an object as saved.
            </summary>
            <param name="type">The type of the object.</param>
            <param name="key">The key of the object.</param>
        </member>
        <member name="M:Phone.Storage.Api.SavingCache.Clear">
            <summary>
            Clears the cache.
            </summary>
        </member>
        <member name="T:Phone.Storage.IDescriptorExtension">
            <summary>
            Contains extension methods for list of <see cref="T:Phone.Storage.IDescriptor`1"/>.
            </summary>
        </member>
        <member name="M:Phone.Storage.IDescriptorExtension.AsValues``1(System.Collections.Generic.IEnumerable{Phone.Storage.IDescriptor{``0}})">
            <summary>
            Extracts the persisted instances associated with a serie of descriptor.
            </summary>
            <typeparam name="T">The persisted class.</typeparam>
            <param name="descriptors">The reference descriptors.</param>
            <returns>The associated persisted instances.</returns>
            <seealso cref="P:Phone.Storage.IDescriptor`1.Value"/>
        </member>
        <member name="T:Phone.Storage.UnknownClassException">
            <summary>
            Represents errors that occurs when an instance of a non persisted
            type is manipulated by a <see cref="T:Phone.Storage.IDataSource"/>.
            </summary>
            <seealso cref="M:Phone.Storage.IDataSource.Load``1(System.Object)"/>
            <seealso cref="M:Phone.Storage.IDataSource.Save``1(``0)"/>
            <seealso cref="M:Phone.Storage.IDataSource.Delete``1(System.Object)"/>
        </member>
        <member name="M:Phone.Storage.UnknownClassException.#ctor">
            <summary>
            Initializes a new instance of the UnknownClassException class.
            </summary>
        </member>
        <member name="M:Phone.Storage.UnknownClassException.#ctor(System.String)">
            <summary>
            Initializes a new instance of the UnknownClassException class
            with a specified message.
            </summary>
            <param name="message">The details of the error.</param>
        </member>
        <member name="M:Phone.Storage.UnknownClassException.#ctor(System.String,System.Exception)">
            <summary>
            Initializes a new instance of the UnknownClassException class
            with a specified message that encapsulates an initial error.
            </summary>
            <param name="message">The details of the error.</param>
            <param name="inner">The initial error.</param>
        </member>
        <member name="T:Phone.Storage.Engine">
            <summary>
            The entry point of the storage system.
            </summary>
        </member>
        <member name="F:Phone.Storage.Engine.instance">
            <summary>
            The unique instance of the storage engine.
            </summary>
        </member>
        <member name="F:Phone.Storage.Engine.datasources">
            <summary>
            The registered data sources.
            </summary>
        </member>
        <member name="F:Phone.Storage.Engine.initializer">
            <summary>
            The initializer used when creating new <see cref="T:Phone.Storage.IDataSource"/>.
            </summary>
        </member>
        <member name="M:Phone.Storage.Engine.#ctor">
            <summary>
            Prevents a default instance of the Engine class from being created.
            </summary>
        </member>
        <member name="M:Phone.Storage.Engine.RegisterDataSource(Phone.Storage.IDataSourceDefinition)">
            <summary>
            Registers a new data source.
            </summary>
            <param name="definition">
            The data source definition used to create the data source.
            </param>
            <returns>
            The created data source.
            </returns>
            <exception cref="T:System.ArgumentNullException">
            The <paramref name="definition"/> parameter is <c>null</c>.
            </exception>
            <exception cref="T:System.NotSupportedException">
            The data source is already registered (based on its name).
            </exception>
            <exception cref="T:Phone.Storage.DefinitionException">
            The provided definition is not correct.
            </exception>
        </member>
        <member name="M:Phone.Storage.Engine.UnregisterDataSource(System.String)">
            <summary>
            Unregisters a data source.
            </summary>
            <param name="name">The name of the data source.</param>
            <remarks>
            This method does nothing if the data source doesn't exist or is already
            unregistered.
            </remarks>
            <exception cref="T:System.ArgumentNullException">
            The <paramref name="name"/> parameter is <c>null</c> or empty.
            </exception>
        </member>
        <member name="M:Phone.Storage.Engine.RetrieveDataSource(System.String)">
            <summary>
            Retrieves a registered data source based on its unique name.
            </summary>
            <param name="name">The name of the data source.</param>
            <returns>The retrieved data source.</returns>
        </member>
        <member name="P:Phone.Storage.Engine.Instance">
            <summary>
            Gets the unique instance of the storage engine.
            </summary>
        </member>
        <member name="P:Phone.Storage.Engine.Initializer">
            <summary>
            Gets or sets the initializer used when creating new <see cref="T:Phone.Storage.IDataSource"/>.
            </summary>
            <exception cref="T:System.ArgumentNullException">
            The value provided to the setter is <c>null</c>.
            </exception>
        </member>
        <member name="T:Phone.Storage.Api.DataSource">
            <summary>
            Implements the <see cref="T:Phone.Storage.IDataSource"/> contract.
            </summary>
        </member>
        <member name="F:Phone.Storage.Api.DataSource.definition">
            <summary>
            The associated data source definition.
            </summary>
        </member>
        <member name="F:Phone.Storage.Api.DataSource.classes">
            <summary>
            The associated class definitions.
            </summary>
        </member>
        <member name="F:Phone.Storage.Api.DataSource.classesRO">
            <summary>
            The read-only wrapper for <see cref="F:Phone.Storage.Api.DataSource.classes"/>.
            </summary>
        </member>
        <member name="F:Phone.Storage.Api.DataSource.indexes">
            <summary>
            The associated index definitions.
            </summary>
        </member>
        <member name="F:Phone.Storage.Api.DataSource.indexesRO">
            <summary>
            The read-only wrapper for <see cref="F:Phone.Storage.Api.DataSource.indexes"/>.
            </summary>
        </member>
        <member name="F:Phone.Storage.Api.DataSource.classSerializers">
            <summary>
            The serializer associated with the class definitions.
            </summary>
        </member>
        <member name="F:Phone.Storage.Api.DataSource.indexManagers">
            <summary>
            The index managers created for each persisted class.
            </summary>
        </member>
        <member name="F:Phone.Storage.Api.DataSource.name">
            <summary>
            The unique name of the data source.
            </summary>
        </member>
        <member name="F:Phone.Storage.Api.DataSource.savingCache">
            <summary>
            The cache used when saving an object.
            </summary>
        </member>
        <member name="F:Phone.Storage.Api.DataSource.loadingCache">
            <summary>
            The cache used when loading an object.
            </summary>
        </member>
        <member name="M:Phone.Storage.Api.DataSource.#ctor(Phone.Storage.IDataSourceDefinition)">
            <summary>
            Initializes a new instance of the DataSource class.
            </summary>
            <param name="definition">The associated data source definition.</param>
            <exception cref="T:System.ArgumentNullException">
            The <paramref name="definition"/> parameter is <c>null</c>.
            </exception>
        </member>
        <member name="M:Phone.Storage.Api.DataSource.Query``1">
            <summary>
            Creates a new query to extract values for a specified persisted class.
            </summary>
            <typeparam name="T">The type of the persisted class.</typeparam>
            <returns>The query object.</returns>
            <exception cref="T:Phone.Storage.UnknownClassException">
            <typeparamref name="T"/> is not a persisted class.
            </exception>
        </member>
        <member name="M:Phone.Storage.Api.DataSource.Load``1(System.Object)">
            <summary>
            Loads a specified persisted instance.
            </summary>
            <typeparam name="T">The type of the retrieved instance.</typeparam>
            <param name="key">The key of the retrieved instance.</param>
            <returns>The retrieved instance.</returns>
            <exception cref="T:System.ArgumentNullException">
            The <paramref name="key"/> parameter is <c>null</c>.
            </exception>
            <exception cref="T:Phone.Storage.UnknownClassException">
            <typeparamref name="T"/> is not a persisted class.
            </exception>
            <exception cref="T:Phone.Storage.WrongKeyTypeException">
            The <paramref name="key"/> parameter is not of the expected type.
            </exception>
            <exception cref="T:System.Collections.Generic.KeyNotFoundException">
            There is no element associated with the specified <paramref name="key"/>.
            </exception>
        </member>
        <member name="M:Phone.Storage.Api.DataSource.Save``1(``0)">
            <summary>
            Persists a specified instance.
            </summary>
            <typeparam name="T">The type of the saved instance.</typeparam>
            <param name="value">The value to persist.</param>
            <exception cref="T:System.ArgumentNullException">
            The <paramref name="value"/> parameter is <c>null</c>.
            </exception>
            <exception cref="T:Phone.Storage.UnknownClassException">
            <typeparamref name="T"/> is not a persisted class.
            </exception>
        </member>
        <member name="M:Phone.Storage.Api.DataSource.Delete``1(System.Object)">
            <summary>
            Deletes a specified instance.
            </summary>
            <typeparam name="T">The type of the deleted instance.</typeparam>
            <param name="key">The key of the deleted instance.</param>
            <exception cref="T:System.ArgumentNullException">
            The <paramref name="key"/> parameter is <c>null</c>.
            </exception>
            <exception cref="T:Phone.Storage.UnknownClassException">
            <typeparamref name="T"/> is not a persisted class.
            </exception>
            <exception cref="T:Phone.Storage.WrongKeyTypeException">
            The <paramref name="key"/> parameter is not of the expected type.
            </exception>
            <exception cref="T:System.Collections.Generic.KeyNotFoundException">
            There is no element associated with the specified <paramref name="key"/>.
            </exception>
        </member>
        <member name="M:Phone.Storage.Api.DataSource.RemoveEverything">
            <summary>
            Removes and cleans everything associated with the data source.
            As expected, this action is irreversible.
            </summary>
        </member>
        <member name="M:Phone.Storage.Api.DataSource.Initialize(Phone.Storage.IInitializer)">
            <summary>
            Initializes the internal values of the data source
            and validates its definition.
            </summary>
            <param name="initializer">
            The initializer provided by the engine.
            </param>
        </member>
        <member name="M:Phone.Storage.Api.DataSource.Dispose">
            <summary>
            Ensures that the indexes ave properly saved before releasing the instance.
            </summary>
        </member>
        <member name="M:Phone.Storage.Api.DataSource.Load(System.Type,System.Object)">
            <summary>
            Implements the loading logic.
            </summary>
            <param name="type">The type of the loaded value.</param>
            <param name="key">The key of the loaded value.</param>
            <returns>The loaded value.</returns>
            <seealso cref="M:Phone.Storage.Api.DataSource.Load``1(System.Object)"/>
        </member>
        <member name="M:Phone.Storage.Api.DataSource.Save(System.Type,System.Object)">
            <summary>
            Implements the saving logic.
            </summary>
            <param name="type">The type of the saved object.</param>
            <param name="value">The value of the saved object.</param>
            <seealso cref="M:Phone.Storage.Api.DataSource.Save``1(``0)"/>
        </member>
        <member name="M:Phone.Storage.Api.DataSource.LoadIndexes(Phone.Storage.ISerializer)">
            <summary>
            Loads the indexes associated to the index managers.
            </summary>
            <param name="propertySerializer">
            The serializer used to persist index values.
            </param>
        </member>
        <member name="M:Phone.Storage.Api.DataSource.SaveIndexes">
            <summary>
            Stores the indexes associated to the index managers.
            </summary>
        </member>
        <member name="M:Phone.Storage.Api.DataSource.DefineInstancePath(Phone.Storage.IClassDefinition,System.Object)">
            <summary>
            Defines the path of an instance.
            </summary>
            <param name="definition">The class definition.</param>
            <param name="key">The key of the persisted instance.</param>
            <returns>The path used to store the instance.</returns>
        </member>
        <member name="M:Phone.Storage.Api.DataSource.DefineIndexPath(Phone.Storage.Api.IndexManager)">
            <summary>
            Defines the path of an index manager.
            </summary>
            <param name="manager">The reference index manager.</param>
            <returns>The path used to store the indexes.</returns>
        </member>
        <member name="E:Phone.Storage.Api.DataSource.Saving">
            <summary>
            Occurs before saving an object.
            </summary>
        </member>
        <member name="E:Phone.Storage.Api.DataSource.Loading">
            <summary>
            Occurs before loading an object.
            </summary>
        </member>
        <member name="E:Phone.Storage.Api.DataSource.Deleting">
            <summary>
            Occurs before deleting an object.
            </summary>
        </member>
        <member name="E:Phone.Storage.Api.DataSource.Saved">
            <summary>
            Occurs after saving an object.
            </summary>
        </member>
        <member name="E:Phone.Storage.Api.DataSource.Loaded">
            <summary>
            Occurs after loading an object.
            </summary>
        </member>
        <member name="E:Phone.Storage.Api.DataSource.Deleted">
            <summary>
            Occurs after deleting an object.
            </summary>
        </member>
        <member name="P:Phone.Storage.Api.DataSource.Name">
            <summary>
            Gets the unique name of the data source.
            </summary>
        </member>
        <member name="P:Phone.Storage.Api.DataSource.Classes">
            <summary>
            Gets the associated class definitions.
            </summary>
        </member>
        <member name="P:Phone.Storage.Api.DataSource.Indexes">
            <summary>
            Gets the associated index definitions.
            </summary>
        </member>
        <member name="T:Phone.Storage.Serializer.Int64Serializer">
            <summary>
            Provides the serialization logic associated with <see cref="T:System.Int64"/> instances.
            </summary>
        </member>
        <member name="M:Phone.Storage.Serializer.Int64Serializer.InternalSerialize(System.IO.BinaryWriter,System.Object)">
            <summary>
            Serializes a <see cref="T:System.Int64"/> value.
            </summary>
            <param name="writer">The target writer.</param>
            <param name="value">The serialized value.</param>
        </member>
        <member name="M:Phone.Storage.Serializer.Int64Serializer.InternalDeserialize(System.IO.BinaryReader)">
            <summary>
            Reads a <see cref="T:System.Int64"/> value.
            </summary>
            <param name="reader">The source reader.</param>
            <returns>The deserialized value.</returns>
        </member>
        <member name="P:Phone.Storage.Serializer.Int64Serializer.AssociatedType">
            <summary>
            Gets the <see cref="T:System.Int64"/> type.
            </summary>
        </member>
        <member name="T:Phone.Storage.Serializer.CharSerializer">
            <summary>
            Provides the serialization logic associated with <see cref="T:System.Char"/> instances.
            </summary>
        </member>
        <member name="M:Phone.Storage.Serializer.CharSerializer.InternalSerialize(System.IO.BinaryWriter,System.Object)">
            <summary>
            Serializes a <see cref="T:System.Char"/> value.
            </summary>
            <param name="writer">The target writer.</param>
            <param name="value">The serialized value.</param>
        </member>
        <member name="M:Phone.Storage.Serializer.CharSerializer.InternalDeserialize(System.IO.BinaryReader)">
            <summary>
            Reads a <see cref="T:System.Char"/> value.
            </summary>
            <param name="reader">The source reader.</param>
            <returns>The deserialized value.</returns>
        </member>
        <member name="P:Phone.Storage.Serializer.CharSerializer.AssociatedType">
            <summary>
            Gets the <see cref="T:System.Char"/> type.
            </summary>
        </member>
        <member name="T:Phone.Storage.ReadOnlyDictionary`2">
            <summary>
            Provides a read-only layer around an existing dictionary.
            </summary>
            <typeparam name="TKey">
            The type of keys in the dictionary.
            </typeparam>
            <typeparam name="TValue">
            The type of values in the dictionary.
            </typeparam>
        </member>
        <member name="F:Phone.Storage.ReadOnlyDictionary`2.encapsulated">
            <summary>
            The encapsulated dictionary.
            </summary>
        </member>
        <member name="M:Phone.Storage.ReadOnlyDictionary`2.#ctor(System.Collections.Generic.IDictionary{`0,`1})">
            <summary>
            Initializes a new instance of the ReadOnlyDictionary class.
            </summary>
            <param name="encapsulated">The encapsulated dictionary.</param>
            <exception cref="T:System.ArgumentNullException">
            The <paramref name="encapsulated"/> parameter is <c>null</c>.
            </exception>
        </member>
        <member name="M:Phone.Storage.ReadOnlyDictionary`2.ContainsKey(`0)">
            <summary>
            Determines whether the dictonary contains an element with the specified key.
            </summary>
            <param name="key">The key to locate in the dictionary.</param>
            <returns>
            <c>true</c> if the dictionary contains an element with the key;
            otherwise, <c>false</c>.
            </returns>
        </member>
        <member name="M:Phone.Storage.ReadOnlyDictionary`2.TryGetValue(`0,`1@)">
            <summary>
            Gets the value associated with the specified key.
            </summary>
            <param name="key">The key whose value to get.</param>
            <param name="value">
            When this method returns, the value associated with the specified key, if
            the key is found; otherwise, the default value for the type of the value
            parameter. This parameter is passed uninitialized.
            </param>
            <returns>
            <c>true</c> if the dictionary contains an element with the specified key;
            otherwise, <c>false</c>.
            </returns>
        </member>
        <member name="M:Phone.Storage.ReadOnlyDictionary`2.Add(`0,`1)">
            <summary>
            Adds an element with the provided key and value to the dictionary
            - always raises <see cref="T:System.NotSupportedException"/>.
            </summary>
            <param name="key">The object to use as the key of the element to add.</param>
            <param name="value">The object to use as the value of the element to add.</param>
            <exception cref="T:System.NotSupportedException">
            The dictionary is read-only.
            </exception>
        </member>
        <member name="M:Phone.Storage.ReadOnlyDictionary`2.Remove(`0)">
            <summary>
            Removes the element with the specified key from the dictionary
            - always raises <see cref="T:System.NotSupportedException"/>.
            </summary>
            <param name="key">The key of the element to remove.</param>
            <returns>Always raises <see cref="T:System.NotSupportedException"/>.</returns>
            <exception cref="T:System.NotSupportedException">
            The dictionary is read-only.
            </exception>
        </member>
        <member name="P:Phone.Storage.ReadOnlyDictionary`2.Keys">
            <summary>
            Gets a collection containing the keys of the dictionary.
            </summary>
        </member>
        <member name="P:Phone.Storage.ReadOnlyDictionary`2.Values">
            <summary>
            Gets a collection containing the values of the dictionary.
            </summary>
        </member>
        <member name="P:Phone.Storage.ReadOnlyDictionary`2.Item(`0)">
            <summary>
            Gets or sets the element with the specified key.
            </summary>
            <param name="key">The key of the element to get or set.</param>
            <returns>The element with the specified key.</returns>
        </member>
        <member name="T:Phone.Storage.IIndexDefinition">
            <summary>
            Defines the concept of index on persisted class.
            </summary>
            <remarks>
            The implementations of this interface should be immutable to avoid any side effect.
            </remarks>
        </member>
        <member name="M:Phone.Storage.IIndexDefinition.RetrieveIndexValue(System.Object)">
            <summary>
            Retrieves the index of an object associated with this definition.
            </summary>
            <param name="value">A <see cref="P:Phone.Storage.IIndexDefinition.Type"/> instance.</param>
            <returns>
            The associated identifier  of <see cref="P:Phone.Storage.IIndexDefinition.IndexType"/> type.
            </returns>
            <exception cref="T:System.ArgumentNullException">
            The <paramref name="value"/> parameter is <c>null</c>.
            </exception>
            <exception cref="T:System.NotSupportedException">
            The <paramref name="value"/> is not an instance of <see cref="P:Phone.Storage.IIndexDefinition.Type"/>.
            </exception>
        </member>
        <member name="P:Phone.Storage.IIndexDefinition.Name">
            <summary>
            Gets the name of the index.
            </summary>
            <remarks>
            This name should be unique for the associated <see cref="P:Phone.Storage.IIndexDefinition.Type"/>.
            </remarks>
        </member>
        <member name="P:Phone.Storage.IIndexDefinition.Type">
            <summary>
            Gets the type of the persisted instances.
            </summary>
        </member>
        <member name="P:Phone.Storage.IIndexDefinition.IndexType">
            <summary>
            Gets the type of the associated indexed values.
            </summary>
        </member>
        <member name="T:Phone.Storage.Api.GenericDescriptor`1">
            <summary>
            Implements the <see cref="T:Phone.Storage.IDescriptor`1"/> interface.
            </summary>
            <typeparam name="T">The associated persisted class.</typeparam>
            <seealso cref="T:Phone.Storage.Api.IndexManager"/>
        </member>
        <member name="T:Phone.Storage.IDescriptor`1">
            <summary>
            Represents the key of a persisted instance and its associated index values.
            </summary>
            <typeparam name="T">
            The associated persisted class.
            </typeparam>
        </member>
        <member name="P:Phone.Storage.IDescriptor`1.ClassType">
            <summary>
            Gets the associated persisted class.
            </summary>
        </member>
        <member name="P:Phone.Storage.IDescriptor`1.Key">
            <summary>
            Gets the key of the instance.
            </summary>
        </member>
        <member name="P:Phone.Storage.IDescriptor`1.Index">
            <summary>
            Gets the index values of the instance for each known index.
            </summary>
        </member>
        <member name="P:Phone.Storage.IDescriptor`1.Value">
            <summary>
            Gets the associated persisted instance.
            </summary>
        </member>
        <member name="F:Phone.Storage.Api.GenericDescriptor`1.encapsulated">
            <summary>
            The encapsulated non-generic descriptor.
            </summary>
        </member>
        <member name="F:Phone.Storage.Api.GenericDescriptor`1.getValue">
            <summary>
            The method used to get the value.
            </summary>
        </member>
        <member name="F:Phone.Storage.Api.GenericDescriptor`1.value">
            <summary>
            The loaded value.
            </summary>
        </member>
        <member name="F:Phone.Storage.Api.GenericDescriptor`1.initialized">
            <summary>
            A value indicating whether the <see cref="F:Phone.Storage.Api.GenericDescriptor`1.value"/>
            has been loaded.
            </summary>
        </member>
        <member name="M:Phone.Storage.Api.GenericDescriptor`1.#ctor(Phone.Storage.Api.IndexManagerNode,System.Func{`0})">
            <summary>
            Initializes a new instance of the GenericDescriptor class.
            </summary>
            <param name="encapsulated">The encapsulated non-generic descriptor.</param>
            <param name="getValue">The method used to get the value.</param>
        </member>
        <member name="P:Phone.Storage.Api.GenericDescriptor`1.ClassType">
            <summary>
            Gets the associated persisted class.
            </summary>
        </member>
        <member name="P:Phone.Storage.Api.GenericDescriptor`1.Key">
            <summary>
            Gets the key of the instance.
            </summary>
        </member>
        <member name="P:Phone.Storage.Api.GenericDescriptor`1.Index">
            <summary>
            Gets the index values of the instance for each known index.
            </summary>
        </member>
        <member name="P:Phone.Storage.Api.GenericDescriptor`1.Value">
            <summary>
            Gets the associated persisted instance.
            </summary>
        </member>
        <member name="T:Phone.Storage.AlreadyInitializedException">
            <summary>
            Represents errors that occurs when a class is updated after its initialization.
            </summary>
            <seealso cref="T:Phone.Storage.Api.Initializable"/>
        </member>
        <member name="M:Phone.Storage.AlreadyInitializedException.#ctor">
            <summary>
            Initializes a new instance of the AlreadyInitializedException class.
            </summary>
        </member>
        <member name="M:Phone.Storage.AlreadyInitializedException.#ctor(System.String)">
            <summary>
            Initializes a new instance of the AlreadyInitializedException class
            with a specified message.
            </summary>
            <param name="message">The details of the error.</param>
        </member>
        <member name="M:Phone.Storage.AlreadyInitializedException.#ctor(System.String,System.Exception)">
            <summary>
            Initializes a new instance of the AlreadyInitializedException class
            with a specified message that encapsulates an initial error.
            </summary>
            <param name="message">The details of the error.</param>
            <param name="inner">The initial error.</param>
        </member>
        <member name="T:Phone.Storage.Serializer.GuidSerializer">
            <summary>
            Provides the serialization logic associated with <see cref="T:System.Guid"/> instances.
            </summary>
        </member>
        <member name="M:Phone.Storage.Serializer.GuidSerializer.InternalSerialize(System.IO.BinaryWriter,System.Object)">
            <summary>
            Serializes a <see cref="T:System.Guid"/> value.
            </summary>
            <param name="writer">The target writer.</param>
            <param name="value">The serialized value.</param>
        </member>
        <member name="M:Phone.Storage.Serializer.GuidSerializer.InternalDeserialize(System.IO.BinaryReader)">
            <summary>
            Reads a <see cref="T:System.Guid"/> value.
            </summary>
            <param name="reader">The source reader.</param>
            <returns>The deserialized value.</returns>
        </member>
        <member name="P:Phone.Storage.Serializer.GuidSerializer.AssociatedType">
            <summary>
            Gets the <see cref="T:System.Guid"/> type.
            </summary>
        </member>
        <member name="T:Phone.Storage.Serializer.ByteSerializer">
            <summary>
            Provides the serialization logic associated with <see cref="T:System.Byte"/> instances.
            </summary>
        </member>
        <member name="M:Phone.Storage.Serializer.ByteSerializer.InternalSerialize(System.IO.BinaryWriter,System.Object)">
            <summary>
            Serializes a <see cref="T:System.Byte"/> value.
            </summary>
            <param name="writer">The target writer.</param>
            <param name="value">The serialized value.</param>
        </member>
        <member name="M:Phone.Storage.Serializer.ByteSerializer.InternalDeserialize(System.IO.BinaryReader)">
            <summary>
            Reads a <see cref="T:System.Byte"/> value.
            </summary>
            <param name="reader">The source reader.</param>
            <returns>The deserialized value.</returns>
        </member>
        <member name="P:Phone.Storage.Serializer.ByteSerializer.AssociatedType">
            <summary>
            Gets the <see cref="T:System.Byte"/> type.
            </summary>
        </member>
        <member name="T:Phone.Storage.Serializer.ArraySerializer">
            <summary>
            Implements a serializer for <see cref="T:System.Array"/> instances.
            </summary>
        </member>
        <member name="F:Phone.Storage.Serializer.ArraySerializer.parent">
            <summary>
            The parent serializer used to serialize the elements of the arrays.
            </summary>
        </member>
        <member name="M:Phone.Storage.Serializer.ArraySerializer.#ctor(Phone.Storage.ISerializer)">
            <summary>
            Initializes a new instance of the ArraySerializer class.
            </summary>
            <param name="parent">
            The parent serializer used to serialize the elements of the arrays.
            </param>
        </member>
        <member name="M:Phone.Storage.Serializer.ArraySerializer.InternalCanSerialize(System.Type)">
            <summary>
            Implements the <see cref="M:Phone.Storage.ISerializer.CanSerialize(System.Type)"/> logic.
            </summary>
            <param name="type">
            The reference type - guaranty to be not <c>null</c>.
            </param>
            <returns>
            <c>true</c> if the serializer can work with instances of <paramref name="type"/>;
            <c>false</c> otherwise.
            </returns>
        </member>
        <member name="M:Phone.Storage.Serializer.ArraySerializer.InternalCanWorkInPlace(System.Type)">
            <summary>
            Implements the <see cref="M:Phone.Storage.ISerializer.CanWorkInPlace(System.Type)"/> logic.
            </summary>
            <param name="type">
            The reference type - guaranty to be not <c>null</c>.
            </param>
            <returns>
            Always <c>false</c>.
            </returns>
        </member>
        <member name="M:Phone.Storage.Serializer.ArraySerializer.InternalSerialize(System.IO.BinaryWriter,System.Type,System.Object)">
            <summary>
            Implements the serialization logic.
            </summary>
            <param name="writer">
            The writer - guaranty to be not <c>null</c>.
            </param>
            <param name="type">
            The reference type - guaranty to be not <c>null</c>.
            </param>
            <param name="value">
            The value to serialize - guaranty to be not <c>null</c> and associated with
            the current serializer.
            </param>
        </member>
        <member name="M:Phone.Storage.Serializer.ArraySerializer.InternalDeserialize(System.IO.BinaryReader,System.Type)">
            <summary>
            Implements the deserialization logic.
            </summary>
            <param name="reader">
            The reader - guaranty to be not <c>null</c>.
            </param>
            <param name="type">
            The reference type - guaranty to be not <c>null</c>.
            </param>
            <returns>The deserialized value.</returns>
        </member>
        <member name="M:Phone.Storage.Serializer.ArraySerializer.InternalDeserialize(System.IO.BinaryReader,System.Type,System.Object)">
            <summary>
            Implements the in-place deserialization logic - always raises an exception.
            </summary>
            <param name="reader">
            The reader - guaranty to be not <c>null</c>.
            </param>
            <param name="type">
            The reference type - guaranty to be not <c>null</c>.
            </param>
            <param name="value">
            The container for the deserialized object - guaranty to be not <c>null</c>.
            </param>
            <exception cref="T:System.NotSupportedException">
            The in-place deserialization is not supported.
            </exception>
        </member>
        <member name="P:Phone.Storage.Serializer.ArraySerializer.Parent">
            <summary>
            Gets the parent serializer used to serialize the elements of the arrays.
            </summary>
        </member>
        <member name="T:Phone.Storage.Api.IndexManager">
            <summary>
            Manages the index values associated with a persisted class.
            </summary>
        </member>
        <member name="F:Phone.Storage.Api.IndexManager.datasource">
            <summary>
            The associated data source.
            </summary>
        </member>
        <member name="F:Phone.Storage.Api.IndexManager.classType">
            <summary>
            The associated persisted class.
            </summary>
        </member>
        <member name="F:Phone.Storage.Api.IndexManager.descriptors">
            <summary>
            The existing instance descriptors provided by key.
            </summary>
        </member>
        <member name="M:Phone.Storage.Api.IndexManager.#ctor(Phone.Storage.Api.DataSource,System.Type)">
            <summary>
            Initializes a new instance of the IndexManager class.
            </summary>
            <param name="datasource">
            The associated data source.
            </param>
            <param name="classType">
            The associated persisted class.
            </param>
        </member>
        <member name="M:Phone.Storage.Api.IndexManager.ToQuery``1">
            <summary>
            Provides a query based on the associated descriptors.
            </summary>
            <typeparam name="T">The associated persisted class.</typeparam>
            <returns>A query on the associated descriptors.</returns>
        </member>
        <member name="M:Phone.Storage.Api.IndexManager.OnDelete(System.Object)">
            <summary>
            Deletes the indexes of a specified key.
            </summary>
            <param name="key">The reference key.</param>
            <exception cref="T:System.ArgumentNullException">
            The <paramref name="key"/> parameter is <c>null</c>.
            </exception>
        </member>
        <member name="M:Phone.Storage.Api.IndexManager.OnSave(System.Object)">
            <summary>
            Saves the indexed values of specified persisted instance.
            </summary>
            <param name="value">The persisted instance.</param>
        </member>
        <member name="P:Phone.Storage.Api.IndexManager.ClassType">
            <summary>
            Gets the associated persisted class.
            </summary>
        </member>
        <member name="P:Phone.Storage.Api.IndexManager.Indexes">
            <summary>
            Gets the indexes managed by the current instance - by name.
            </summary>
        </member>
        <member name="P:Phone.Storage.Api.IndexManager.Definition">
            <summary>
            Gets the persisted class definition associated with the current instance.
            </summary>
        </member>
        <member name="P:Phone.Storage.Api.IndexManager.Nodes">
            <summary>
            Gets the nodes that composes the manager.
            </summary>
            <remarks>
            This dictionary allows to change the internal state of the manager.
            That's why this property is internal and used only for serialization purposes.
            </remarks>
            <seealso cref="T:Phone.Storage.Api.IndexManagerSerializer"/>
        </member>
        <member name="T:Phone.Storage.Api.DefaultIndexDefinition`2">
            <summary>
            Implements the <see cref="T:Phone.Storage.IIndexDefinition"/> interface.
            </summary>
            <typeparam name="T">
            The type of the persisted objects.
            </typeparam>
            <typeparam name="TIndex">
            The type of the indexed values.
            </typeparam>
        </member>
        <member name="F:Phone.Storage.Api.DefaultIndexDefinition`2.name">
            <summary>
            The name of the index.
            </summary>
        </member>
        <member name="F:Phone.Storage.Api.DefaultIndexDefinition`2.retrieveIndexValue">
            <summary>
            The function used to retrieve the index value associated with an object.
            </summary>
        </member>
        <member name="M:Phone.Storage.Api.DefaultIndexDefinition`2.#ctor(System.String,System.Func{`0,`1})">
            <summary>
            Initializes a new instance of the DefaultIndexDefinition class.
            </summary>
            <param name="name">
            The name of the index.
            </param>
            <param name="retrieveIndexValue">
            The function used to retrieve the index value associated with an object.
            </param>
        </member>
        <member name="M:Phone.Storage.Api.DefaultIndexDefinition`2.RetrieveIndexValue(System.Object)">
            <summary>
            Retrieves the index of an object associated with this definition.
            </summary>
            <param name="value">A <see cref="P:Phone.Storage.IIndexDefinition.Type"/> instance.</param>
            <returns>
            The associated identifier  of <see cref="P:Phone.Storage.IIndexDefinition.IndexType"/> type.
            </returns>
        </member>
        <member name="P:Phone.Storage.Api.DefaultIndexDefinition`2.Name">
            <summary>
            Gets the name of the index.
            </summary>
        </member>
        <member name="P:Phone.Storage.Api.DefaultIndexDefinition`2.Type">
            <summary>
            Gets the type of the persisted instances.
            </summary>
        </member>
        <member name="P:Phone.Storage.Api.DefaultIndexDefinition`2.IndexType">
            <summary>
            Gets the type of the associated indexed values.
            </summary>
        </member>
        <member name="T:Phone.Storage.KeyEventArgs">
            <summary>
            Provides data for the <see cref="E:Phone.Storage.IDataSource.Loading"/>,
            <see cref="E:Phone.Storage.IDataSource.Deleting"/>, <see cref="E:Phone.Storage.IDataSource.Deleted"/>
            events.
            </summary>
            <seealso cref="T:Phone.Storage.IDataSource"/>
        </member>
        <member name="F:Phone.Storage.KeyEventArgs.classType">
            <summary>
            The type of the associated persisted class.
            </summary>
        </member>
        <member name="F:Phone.Storage.KeyEventArgs.key">
            <summary>
            The key of the persisted instance.
            </summary>
        </member>
        <member name="M:Phone.Storage.KeyEventArgs.#ctor(System.Type,System.Object)">
            <summary>
            Initializes a new instance of the KeyEventArgs class.
            </summary>
            <param name="classType">The type of the associated persisted class.</param>
            <param name="key">The key of the persisted instance.</param>
            <exception cref="T:System.ArgumentNullException">
            One of the parameters is <c>null</c>.
            </exception>
        </member>
        <member name="P:Phone.Storage.KeyEventArgs.ClassType">
            <summary>
            Gets the type of the associated persisted class.
            </summary>
        </member>
        <member name="P:Phone.Storage.KeyEventArgs.Key">
            <summary>
            Gets the key of the persisted instance.
            </summary>
        </member>
        <member name="T:Phone.Storage.IDataSourceDefinition">
            <summary>
            Defines the data source concept.
            </summary>
            <remarks>
            The implementations of this interface should be immutable to avoid any side effect.
            </remarks>
        </member>
        <member name="P:Phone.Storage.IDataSourceDefinition.Name">
            <summary>
            Gets the name of the data source.
            </summary>
            <remarks>
            Should be unique in the encapsulating application to avoid collision during
            save and load operations.
            </remarks>
        </member>
        <member name="P:Phone.Storage.IDataSourceDefinition.Classes">
            <summary>
            Gets the definitions of the classes that compose the data source.
            </summary>
        </member>
        <member name="P:Phone.Storage.IDataSourceDefinition.Indexes">
            <summary>
            Gets the definitions of the indexes associated to the data source.
            </summary>
        </member>
        <member name="T:Phone.Storage.Api.IndexManagerSerializer">
            <summary>
            Implements the <see cref="T:Phone.Storage.ISerializer"/> contract for the index manager instances.
            </summary>
            <remarks>
            This serializer breaks the <see cref="T:Phone.Storage.ISerializer"/> contract has the default
            deserialization (that creates a new instance) is not implemented.
            As a result, this implementation should not be used as part of a chain-of-responsibility.
            </remarks>
        </member>
        <member name="F:Phone.Storage.Api.IndexManagerSerializer.propertySerializer">
            <summary>
            The serializer(s) used for all the properties of the class instances.
            </summary>
        </member>
        <member name="M:Phone.Storage.Api.IndexManagerSerializer.#ctor(Phone.Storage.ISerializer)">
            <summary>
            Initializes a new instance of the IndexManagerSerializer class.
            </summary>
            <param name="propertySerializer">
            The serializer(s) used for all the properties of the class instances.
            </param>
        </member>
        <member name="M:Phone.Storage.Api.IndexManagerSerializer.InternalCanWorkInPlace(System.Type)">
            <summary>
            Checks whether the <see cref="M:Phone.Storage.ISerializer.Deserialize(System.IO.BinaryReader,System.Type,System.Object)"/>*
            method is implemented by this serializer.
            </summary>
            <param name="type">The checked type.</param>
            <returns>
            The same value than <see cref="M:Phone.Storage.ISerializer.CanSerialize(System.Type)"/>.
            </returns>
        </member>
        <member name="M:Phone.Storage.Api.IndexManagerSerializer.InternalSerialize(System.IO.BinaryWriter,System.Object)">
            <summary>
            Implements the serialization logic for the type associated with this serializer.
            </summary>
            <param name="writer">
            The writer - guaranty to be not <c>null</c>.
            </param>
            <param name="value">
            The value to serialize - guaranty to be not <c>null</c> and associated with
            the current serializer.
            </param>
        </member>
        <member name="M:Phone.Storage.Api.IndexManagerSerializer.InternalDeserialize(System.IO.BinaryReader,System.Type,System.Object)">
            <summary>
            Implements the in-place deserialization logic.
            </summary>
            <param name="reader">
            The reader - guaranty to be not <c>null</c>.
            </param>
            <param name="type">
            The reference type - guaranty to be not <c>null</c>.
            </param>
            <param name="value">
            The container for the deserialized object - guaranty to be not <c>null</c>.
            </param>
        </member>
        <member name="M:Phone.Storage.Api.IndexManagerSerializer.InternalDeserialize(System.IO.BinaryReader)">
            <summary>
            Implements the deserialization logic for the type associated with this serializer
            - always raises a <see cref="T:System.NotSupportedException"/> exception.
            </summary>
            <param name="reader">
            The reader - guaranty to be not <c>null</c>.
            </param>
            <returns>Always raises a <see cref="T:System.NotSupportedException"/> exception.</returns>
            <exception cref="T:System.NotSupportedException">
            This serializer doesn't support normal deserialization process.
            </exception>
        </member>
        <member name="P:Phone.Storage.Api.IndexManagerSerializer.AssociatedType">
            <summary>
            Gets the type of elements managed by the serializer.
            </summary>
            <value>
            The <see cref="T:Phone.Storage.Api.IndexManager"/> type.
            </value>
        </member>
        <member name="T:Phone.Storage.Api.DefaultPropertyDefinition">
            <summary>
            The default implementation of the <see cref="T:Phone.Storage.IPropertyDefinition"/> interface.
            </summary>
        </member>
        <member name="F:Phone.Storage.Api.DefaultPropertyDefinition.type">
            <summary>
            The type of the property.
            </summary>
        </member>
        <member name="F:Phone.Storage.Api.DefaultPropertyDefinition.get">
            <summary>
            The function used to extract the value of the property.
            </summary>
        </member>
        <member name="F:Phone.Storage.Api.DefaultPropertyDefinition.set">
            <summary>
            The function used to define the value of the property.
            </summary>
        </member>
        <member name="M:Phone.Storage.Api.DefaultPropertyDefinition.#ctor(System.Type,System.Func{System.Object,System.Object},System.Action{System.Object,System.Object})">
            <summary>
            Initializes a new instance of the DefaultPropertyDefinition class.
            </summary>
            <param name="type">
            The type of the property.
            </param>
            <param name="get">
            The function used to extract the value of the property.
            </param>
            <param name="set">
            The function used to define the value of the property - could be <c>null</c>.
            </param>
        </member>
        <member name="M:Phone.Storage.Api.DefaultPropertyDefinition.GetValue(System.Object)">
            <summary>
            Extracts the value of the property from a specific object.
            </summary>
            <param name="instance">The instance of the parent object.</param>
            <returns>
            The value of the property in <paramref name="instance"/>.
            </returns>
            <exception cref="T:System.ArgumentNullException">
            The <paramref name="instance"/> parameter is <c>null</c>.
            </exception>
        </member>
        <member name="M:Phone.Storage.Api.DefaultPropertyDefinition.SetValue(System.Object,System.Object)">
            <summary>
            Defines the value of the property for a specific object.
            </summary>
            <param name="instance">The instance of the parent object.</param>
            <param name="value">The new value for the property.</param>
            <exception cref="T:System.ArgumentNullException">
            The <paramref name="instance"/> parameter is <c>null</c>.
            </exception>
        </member>
        <member name="P:Phone.Storage.Api.DefaultPropertyDefinition.Type">
            <summary>
            Gets the type of the property.
            </summary>
        </member>
        <member name="P:Phone.Storage.Api.DefaultPropertyDefinition.RequireInPlace">
            <summary>
            Gets a value indicating whether the a in-place serialization should
            be used for this property (no use of the <see cref="M:Phone.Storage.IPropertyDefinition.SetValue(System.Object,System.Object)"/>).
            </summary>
        </member>
        <member name="T:Phone.Storage.Serializer.UInt32Serializer">
            <summary>
            Provides the serialization logic associated with <see cref="T:System.UInt32"/> instances.
            </summary>
        </member>
        <member name="M:Phone.Storage.Serializer.UInt32Serializer.InternalSerialize(System.IO.BinaryWriter,System.Object)">
            <summary>
            Serializes a <see cref="T:System.UInt32"/> value.
            </summary>
            <param name="writer">The target writer.</param>
            <param name="value">The serialized value.</param>
        </member>
        <member name="M:Phone.Storage.Serializer.UInt32Serializer.InternalDeserialize(System.IO.BinaryReader)">
            <summary>
            Reads a <see cref="T:System.UInt32"/> value.
            </summary>
            <param name="reader">The source reader.</param>
            <returns>The deserialized value.</returns>
        </member>
        <member name="P:Phone.Storage.Serializer.UInt32Serializer.AssociatedType">
            <summary>
            Gets the <see cref="T:System.UInt32"/> type.
            </summary>
        </member>
        <member name="T:Phone.Storage.Messages">
            <summary>
              A strongly-typed resource class, for looking up localized strings, etc.
            </summary>
        </member>
        <member name="P:Phone.Storage.Messages.ResourceManager">
            <summary>
              Returns the cached ResourceManager instance used by this class.
            </summary>
        </member>
        <member name="P:Phone.Storage.Messages.Culture">
            <summary>
              Overrides the current thread's CurrentUICulture property for all
              resource lookups using this strongly typed resource class.
            </summary>
        </member>
        <member name="P:Phone.Storage.Messages.AbstractSerializerArgument">
            <summary>
              Looks up a localized string similar to The value parameter should be an instance of type {0} instead of {1}.
            </summary>
        </member>
        <member name="P:Phone.Storage.Messages.AlreadyInitialized">
            <summary>
              Looks up a localized string similar to The current instance of the &lt;{0}&gt; class is already initialized and can&apos;t be updated (instance: {1}).
            </summary>
        </member>
        <member name="P:Phone.Storage.Messages.DataSourceDoubleClassDefinition">
            <summary>
              Looks up a localized string similar to The persisted class &lt;{0}&gt; is defined twice.
            </summary>
        </member>
        <member name="P:Phone.Storage.Messages.DataSourceDoubleIndexDefinition">
            <summary>
              Looks up a localized string similar to The index definition &lt;{0}&gt; is already defined for &lt;{1}&gt;.
            </summary>
        </member>
        <member name="P:Phone.Storage.Messages.DataSourceEmptyClassType">
            <summary>
              Looks up a localized string similar to A class definition should be associated to a Type (Type is not set).
            </summary>
        </member>
        <member name="P:Phone.Storage.Messages.DataSourceEmptyIndexName">
            <summary>
              Looks up a localized string similar to An index definition should have a name (Name is not set).
            </summary>
        </member>
        <member name="P:Phone.Storage.Messages.DataSourceEmptyIndexType">
            <summary>
              Looks up a localized string similar to The index definition &lt;{0}&gt; should be associated to a Type (Type is not set).
            </summary>
        </member>
        <member name="P:Phone.Storage.Messages.DataSourceEmptyIndexValueType">
            <summary>
              Looks up a localized string similar to The index definition &lt;{0}&gt; should be associated to a value Type (IndexType is not set).
            </summary>
        </member>
        <member name="P:Phone.Storage.Messages.DataSourceEmptyKeyType">
            <summary>
              Looks up a localized string similar to The class &lt;{0}&gt; should be have an identifier (KeyType is not set).
            </summary>
        </member>
        <member name="P:Phone.Storage.Messages.DataSourceNullClass">
            <summary>
              Looks up a localized string similar to A class definition can&apos;t be null.
            </summary>
        </member>
        <member name="P:Phone.Storage.Messages.DataSourceNullIndex">
            <summary>
              Looks up a localized string similar to An index definition can&apos;t be null.
            </summary>
        </member>
        <member name="P:Phone.Storage.Messages.DataSourceUnknownClass">
            <summary>
              Looks up a localized string similar to There is no definition associated with &lt;{0}&gt;.
            </summary>
        </member>
        <member name="P:Phone.Storage.Messages.DataSourceWrongIndexType">
            <summary>
              Looks up a localized string similar to The index definition &lt;{0}&gt; is not associated to a persisted class type (Type is: {1}).
            </summary>
        </member>
        <member name="P:Phone.Storage.Messages.DataSourceWrongKeyType">
            <summary>
              Looks up a localized string similar to The key for the persisted class &lt;{0}&gt; should be an instance of &lt;{1}&gt; (Key in error &lt;{3}&gt; - type: &lt;{2}&gt;).
            </summary>
        </member>
        <member name="P:Phone.Storage.Messages.InstanceEventArgsArgument">
            <summary>
              Looks up a localized string similar to The instance parameter should be an instance of classType &lt;{0}&gt; instead of {1}.
            </summary>
        </member>
        <member name="P:Phone.Storage.Messages.LinkSerializerArgument">
            <summary>
              Looks up a localized string similar to The datasource parameter should be a DataSource instance instead of {0}.
            </summary>
        </member>
        <member name="P:Phone.Storage.Messages.SerializerUnknown">
            <summary>
              Looks up a localized string similar to There is no serializer defined for the type &lt;{0}&gt;.
            </summary>
        </member>
        <member name="P:Phone.Storage.Messages.SerializerWrongType">
            <summary>
              Looks up a localized string similar to The serializer expected the type &lt;{0}&gt; instead of &lt;{1}&gt;.
            </summary>
        </member>
        <member name="P:Phone.Storage.Messages.TypedCollectionSerializerArgument">
            <summary>
              Looks up a localized string similar to The elementSerializer can&apos;t serialize T instance.
            </summary>
        </member>
        <member name="T:Phone.Storage.Api.LinkSerializer">
            <summary>
            Implements the <see cref="T:Phone.Storage.ISerializer"/> contract for the links between class definition
            as part of the default serialization strategy.
            </summary>
            <seealso cref="M:Phone.Storage.IInitializer.CreateLinkSerializer(Phone.Storage.IDataSource,Phone.Storage.IClassDefinition,Phone.Storage.ISerializer)"/>
        </member>
        <member name="F:Phone.Storage.Api.LinkSerializer.datasource">
            <summary>
            The associated data source - used to save/load data.
            </summary>
        </member>
        <member name="F:Phone.Storage.Api.LinkSerializer.definition">
            <summary>
            The associated class definition.
            </summary>
        </member>
        <member name="F:Phone.Storage.Api.LinkSerializer.parent">
            <summary>
            The serializer used for the key of the associated class definition.
            </summary>
        </member>
        <member name="M:Phone.Storage.Api.LinkSerializer.#ctor(Phone.Storage.IDataSource,Phone.Storage.IClassDefinition,Phone.Storage.ISerializer)">
            <summary>
            Initializes a new instance of the LinkSerializer class.
            </summary>
            <param name="datasource">
            The associated data source - used to save/load data.
            </param>
            <param name="definition">
            The associated class definition.
            </param>
            <param name="parent">
            The serializer used for the key of the associated class definition.
            </param>
        </member>
        <member name="M:Phone.Storage.Api.LinkSerializer.InternalSerialize(System.IO.BinaryWriter,System.Object)">
            <summary>
            Implements the serialization logic for the type associated with this serializer.
            </summary>
            <param name="writer">
            The writer - guaranty to be not <c>null</c>.
            </param>
            <param name="value">
            The value to serialize - guaranty to be not <c>null</c> and associated with
            the current serializer.
            </param>
        </member>
        <member name="M:Phone.Storage.Api.LinkSerializer.InternalDeserialize(System.IO.BinaryReader)">
            <summary>
            Implements the deserialization logic for the type associated with this serializer.
            </summary>
            <param name="reader">
            The reader - guaranty to be not <c>null</c>.
            </param>
            <returns>The deserialized value.</returns>
        </member>
        <member name="P:Phone.Storage.Api.LinkSerializer.AssociatedType">
            <summary>
            Gets the type of elements managed by the serializer.
            </summary>
        </member>
        <member name="T:Phone.Storage.DefaultDataSourceDefinition">
            <summary>
            The default implementation of the <see cref="T:Phone.Storage.IDataSourceDefinition"/>
            interface.
            </summary>
        </member>
        <member name="F:Phone.Storage.DefaultDataSourceDefinition.name">
            <summary>
            The name of the data source.
            </summary>
        </member>
        <member name="F:Phone.Storage.DefaultDataSourceDefinition.classes">
            <summary>
            The definitions of the classes that compose the data source.
            </summary>
        </member>
        <member name="F:Phone.Storage.DefaultDataSourceDefinition.classesRO">
            <summary>
            The read-only collection associated with
            <see cref="F:Phone.Storage.DefaultDataSourceDefinition.classes"/>.
            </summary>
        </member>
        <member name="F:Phone.Storage.DefaultDataSourceDefinition.indexes">
            <summary>
            The definitions of the indexes associated to the data source.
            </summary>
        </member>
        <member name="F:Phone.Storage.DefaultDataSourceDefinition.indexesRO">
            <summary>
            The read-only collection associated with
            <see cref="F:Phone.Storage.DefaultDataSourceDefinition.indexes"/>.
            </summary>
        </member>
        <member name="M:Phone.Storage.DefaultDataSourceDefinition.#ctor(System.String)">
            <summary>
            Initializes a new instance of the DefaultDataSourceDefinition class.
            </summary>
            <param name="name">The name of the data source.</param>
        </member>
        <member name="M:Phone.Storage.DefaultDataSourceDefinition.AddClass``2(System.Func{``0,``1})">
            <summary>
            Creates and adds a class definition to the data source
            based on a class with a default constructor.
            </summary>
            <typeparam name="T">
            The type of the persisted objects.
            </typeparam>
            <typeparam name="TKey">
            The type of the identifier associated with <typeparamref name="T"/>.
            </typeparam>
            <param name="retrieveKey">
            The function used to extract the identifier of a <typeparamref name="T"/> object.
            </param>
            <returns>
            The current data source definition to authorize chained calls.
            </returns>
        </member>
        <member name="M:Phone.Storage.DefaultDataSourceDefinition.AddClass``2(System.Func{``0,``1},System.Func{``1,``0})">
            <summary>
            Creates and adds a class definition to the data source
            by providing how to initialize a new instance.
            </summary>
            <typeparam name="T">
            The type of the persisted objects.
            </typeparam>
            <typeparam name="TKey">
            The type of the identifier associated with <typeparamref name="T"/>.
            </typeparam>
            <param name="retrieveKey">
            The function used to extract the identifier of a <typeparamref name="T"/> object.
            </param>
            <param name="createInstance">
            The function used to create new instance of the <typeparamref name="T"/> class.
            </param>
            <returns>
            The current data source definition to authorize chained calls.
            </returns>
        </member>
        <member name="M:Phone.Storage.DefaultDataSourceDefinition.AddIndex``2(System.String,System.Func{``0,``1})">
            <summary>
            Creates and adds an index definition to the data source.
            </summary>
            <typeparam name="T">
            The type of the persisted objects.
            </typeparam>
            <typeparam name="TIndex">
            The type of theindex values.
            </typeparam>
            <param name="name">
            The name of the index.
            </param>
            <param name="retrieveIndex">
            The function used to extract the index value from an instance
            of the <typeparamref name="T"/> class.
            </param>
            <returns>
            The current data source definition to authorize chained calls.
            </returns>
        </member>
        <member name="P:Phone.Storage.DefaultDataSourceDefinition.Name">
            <summary>
            Gets the name of the data source.
            </summary>
            <remarks>
            Should be unique in the encapsulating application to avoid collision during
            save and load operations.
            </remarks>
        </member>
        <member name="P:Phone.Storage.DefaultDataSourceDefinition.Classes">
            <summary>
            Gets the definitions of the classes that compose the data source.
            </summary>
            <remarks>
            This collection is read-only.
            </remarks>
        </member>
        <member name="P:Phone.Storage.DefaultDataSourceDefinition.Indexes">
            <summary>
            Gets the definitions of the indexes associated to the data source.
            </summary>
            <remarks>
            This collection is read-only.
            </remarks>
        </member>
        <member name="T:Phone.Storage.IGroupedSerializer">
            <summary>
            Represents a grouped serializer.
            </summary>
            <remarks>
            This interface allows the creation of chain-of-responsibility based
            on the <see cref="T:Phone.Storage.ISerializer"/> interface.
            </remarks>
        </member>
        <member name="M:Phone.Storage.IGroupedSerializer.Retrieve(System.Type)">
            <summary>
            Retrieves a serializer for the specified type.
            </summary>
            <param name="type">The type to serialize.</param>
            <returns>The associated serializer; or <c>null</c>.</returns>
            <exception cref="T:System.ArgumentNullException">
            The <paramref name="type"/> parameter is <c>null</c>.
            </exception>
        </member>
        <member name="M:Phone.Storage.IGroupedSerializer.Add(Phone.Storage.ISerializer)">
            <summary>
            Adds a new serializer to the encapsulated groups.
            </summary>
            <param name="serializer">The serializer to be added.</param>
            <exception cref="T:System.ArgumentNullException">
            The <paramref name="serializer"/> parameter is <c>null</c>.
            </exception>
        </member>
        <member name="T:Phone.Storage.Api.IsolatedStorageHelper">
            <summary>
            Provides helper methods to work with <see cref="T:System.IO.IsolatedStorage.IsolatedStorageFile"/>.
            </summary>
        </member>
        <member name="M:Phone.Storage.Api.IsolatedStorageHelper.Combine(System.String,System.String[])">
            <summary>
            Combines a variable number of paths.
            </summary>
            <param name="root">The root path.</param>
            <param name="paths">The additional paths.</param>
            <returns>The combination of all the paths.</returns>
            <exception cref="T:System.ArgumentNullException">
            One of the parameters is <c>null</c>.
            </exception>
            <exception cref="T:System.ArgumentException">
            One of the parameters contains illegal characters.
            </exception>
            <seealso cref="M:System.IO.Path.Combine(System.String,System.String)"/>
        </member>
        <member name="M:Phone.Storage.Api.IsolatedStorageHelper.DeleteDirectory(System.String)">
            <summary>
            Deletes a directory and all its sub-elements.
            </summary>
            <param name="dir">The directory to delete.</param>
            <exception cref="T:System.ArgumentNullException">
            The <paramref name="dir"/> parameter is <c>null</c>.
            </exception>
        </member>
        <member name="T:Phone.Storage.Serializer.Int32Serializer">
            <summary>
            Provides the serialization logic associated with <see cref="T:System.Int32"/> instances.
            </summary>
        </member>
        <member name="M:Phone.Storage.Serializer.Int32Serializer.InternalSerialize(System.IO.BinaryWriter,System.Object)">
            <summary>
            Serializes a <see cref="T:System.Int32"/> value.
            </summary>
            <param name="writer">The target writer.</param>
            <param name="value">The serialized value.</param>
        </member>
        <member name="M:Phone.Storage.Serializer.Int32Serializer.InternalDeserialize(System.IO.BinaryReader)">
            <summary>
            Reads a <see cref="T:System.Int32"/> value.
            </summary>
            <param name="reader">The source reader.</param>
            <returns>The deserialized value.</returns>
        </member>
        <member name="P:Phone.Storage.Serializer.Int32Serializer.AssociatedType">
            <summary>
            Gets the <see cref="T:System.Int32"/> type.
            </summary>
        </member>
        <member name="T:Phone.Storage.Serializer.UInt16Serializer">
            <summary>
            Provides the serialization logic associated with <see cref="T:System.UInt16"/> instances.
            </summary>
        </member>
        <member name="M:Phone.Storage.Serializer.UInt16Serializer.InternalSerialize(System.IO.BinaryWriter,System.Object)">
            <summary>
            Serializes a <see cref="T:System.UInt16"/> value.
            </summary>
            <param name="writer">The target writer.</param>
            <param name="value">The serialized value.</param>
        </member>
        <member name="M:Phone.Storage.Serializer.UInt16Serializer.InternalDeserialize(System.IO.BinaryReader)">
            <summary>
            Reads a <see cref="T:System.UInt16"/> value.
            </summary>
            <param name="reader">The source reader.</param>
            <returns>The deserialized value.</returns>
        </member>
        <member name="P:Phone.Storage.Serializer.UInt16Serializer.AssociatedType">
            <summary>
            Gets the <see cref="T:System.UInt16"/> type.
            </summary>
        </member>
        <member name="T:Phone.Storage.WrongKeyTypeException">
            <summary>
            Represents errors that occurs when a key with a wrong type is used
            to load or same data.
            </summary>
        </member>
        <member name="M:Phone.Storage.WrongKeyTypeException.#ctor">
            <summary>
            Initializes a new instance of the WrongKeyTypeException class.
            </summary>
        </member>
        <member name="M:Phone.Storage.WrongKeyTypeException.#ctor(System.String)">
            <summary>
            Initializes a new instance of the WrongKeyTypeException class
            with a specified message.
            </summary>
            <param name="message">The details of the error.</param>
        </member>
        <member name="M:Phone.Storage.WrongKeyTypeException.#ctor(System.String,System.Exception)">
            <summary>
            Initializes a new instance of the WrongKeyTypeException class
            with a specified message that encapsulates an initial error.
            </summary>
            <param name="message">The details of the error.</param>
            <param name="inner">The initial error.</param>
        </member>
        <member name="T:Phone.Storage.Serializer.GroupedSerializer">
            <summary>
            Implements a serializer that encapsulates other serializer and provides
            a chain-of-responsibility pattern for the serialization process.
            </summary>
        </member>
        <member name="F:Phone.Storage.Serializer.GroupedSerializer.serializers">
            <summary>
            The encapsulated serializers.
            </summary>
        </member>
        <member name="M:Phone.Storage.Serializer.GroupedSerializer.#ctor">
            <summary>
            Initializes a new instance of the GroupedSerializer class.
            </summary>
        </member>
        <member name="M:Phone.Storage.Serializer.GroupedSerializer.Retrieve(System.Type)">
            <summary>
            Retrieves a serializer for the specified type.
            </summary>
            <param name="type">The type to serialize.</param>
            <returns>The associated serializer; or <c>null</c>.</returns>
        </member>
        <member name="M:Phone.Storage.Serializer.GroupedSerializer.Add(Phone.Storage.ISerializer)">
            <summary>
            Adds a new serializer to the encapsulated groups.
            </summary>
            <param name="serializer">The serializer to be added.</param>
        </member>
        <member name="M:Phone.Storage.Serializer.GroupedSerializer.InternalCanSerialize(System.Type)">
            <summary>
            Implements the <see cref="M:Phone.Storage.ISerializer.CanSerialize(System.Type)"/> logic.
            </summary>
            <param name="type">
            The reference type - guaranty to be not <c>null</c>.
            </param>
            <returns>
            <c>true</c> if the serializer can work with instances of <paramref name="type"/>;
            <c>false</c> otherwise.
            </returns>
        </member>
        <member name="M:Phone.Storage.Serializer.GroupedSerializer.InternalCanWorkInPlace(System.Type)">
            <summary>
            Implements the <see cref="M:Phone.Storage.ISerializer.CanWorkInPlace(System.Type)"/> logic.
            </summary>
            <param name="type">
            The reference type - guaranty to be not <c>null</c>.
            </param>
            <returns>
            <c>true</c> if the serializer can work with initialized instances of
            <paramref name="type"/>; <c>false</c> otherwise.
            </returns>
        </member>
        <member name="M:Phone.Storage.Serializer.GroupedSerializer.InternalSerialize(System.IO.BinaryWriter,System.Type,System.Object)">
            <summary>
            Implements the serialization logic.
            </summary>
            <param name="writer">
            The writer - guaranty to be not <c>null</c>.
            </param>
            <param name="type">
            The reference type - guaranty to be not <c>null</c>.
            </param>
            <param name="value">
            The value to serialize - guaranty to be not <c>null</c> and associated with
            the current serializer.
            </param>
        </member>
        <member name="M:Phone.Storage.Serializer.GroupedSerializer.InternalDeserialize(System.IO.BinaryReader,System.Type)">
            <summary>
            Implements the deserialization logic.
            </summary>
            <param name="reader">
            The reader - guaranty to be not <c>null</c>.
            </param>
            <param name="type">
            The reference type - guaranty to be not <c>null</c>.
            </param>
            <returns>The deserialized value.</returns>
        </member>
        <member name="M:Phone.Storage.Serializer.GroupedSerializer.InternalDeserialize(System.IO.BinaryReader,System.Type,System.Object)">
            <summary>
            Implements the in-place deserialization logic.
            </summary>
            <param name="reader">
            The reader - guaranty to be not <c>null</c>.
            </param>
            <param name="type">
            The reference type - guaranty to be not <c>null</c>.
            </param>
            <param name="value">
            The container for the deserialized object - guaranty to be not <c>null</c>.
            </param>
        </member>
        <member name="T:Phone.Storage.Serializer.UriSerializer">
            <summary>
            Provides the serialization logic associated with <see cref="T:System.Uri"/> instances.
            </summary>
        </member>
        <member name="M:Phone.Storage.Serializer.UriSerializer.InternalSerialize(System.IO.BinaryWriter,System.Object)">
            <summary>
            Serializes a <see cref="T:System.Uri"/> value.
            </summary>
            <param name="writer">The target writer.</param>
            <param name="value">The serialized value.</param>
        </member>
        <member name="M:Phone.Storage.Serializer.UriSerializer.InternalDeserialize(System.IO.BinaryReader)">
            <summary>
            Reads a <see cref="T:System.Uri"/> value.
            </summary>
            <param name="reader">The source reader.</param>
            <returns>The deserialized value.</returns>
        </member>
        <member name="P:Phone.Storage.Serializer.UriSerializer.AssociatedType">
            <summary>
            Gets the <see cref="T:System.Uri"/> type.
            </summary>
        </member>
        <member name="T:Phone.Storage.Api.IndexManagerNode">
            <summary>
            Represents the internal state of an <see cref="T:Phone.Storage.Api.IndexManager"/>
            for a specific persisted instance.
            </summary>
        </member>
        <member name="F:Phone.Storage.Api.IndexManagerNode.key">
            <summary>
            The key of the instance.
            </summary>
        </member>
        <member name="F:Phone.Storage.Api.IndexManagerNode.index">
            <summary>
            The index values of the instance for each known index.
            </summary>
        </member>
        <member name="F:Phone.Storage.Api.IndexManagerNode.indexRO">
            <summary>
            A read-only wrapper for the <see cref="F:Phone.Storage.Api.IndexManagerNode.index"/> field.
            </summary>
        </member>
        <member name="M:Phone.Storage.Api.IndexManagerNode.#ctor(System.Object)">
            <summary>
            Initializes a new instance of the IndexManagerNode class.
            </summary>
            <param name="key">The key of the instance.</param>
        </member>
        <member name="M:Phone.Storage.Api.IndexManagerNode.UpdateIndex(System.String,System.Object)">
            <summary>
            Updates a specified index value.
            </summary>
            <param name="name">The name of the index.</param>
            <param name="value">The new value associated with the index.</param>
        </member>
        <member name="P:Phone.Storage.Api.IndexManagerNode.Key">
            <summary>
            Gets the key of the instance.
            </summary>
        </member>
        <member name="P:Phone.Storage.Api.IndexManagerNode.Index">
            <summary>
            Gets the index values of the instance for each known index.
            </summary>
        </member>
    </members>
</doc>
